有没有办法在C#中执行以下操作?
List<int> aList = new List<int>();
List<int> bList = new List<int>();
... // fill the list somehow
List<int> referece; //?????
if (doThis)
referece = aList;
else
referece = bList;
reference= .... assign another list to reference
这在C#中是否可行?在C ++中,我会引用一个列表,但是在c#?
中EDITED: 我纠正了我的榜样。我想,我想用新的/不同的列表替换列表,我想更改aList或bList。 当我为引用分配新列表时,aList和bList不会改变。但这就是我真正想要的,改变aList或bList。 reference只是选择保存列表的变量。
答案 0 :(得分:3)
问题出在哪里?
List<int> aList = new List<int>();
List<int> bList = new List<int>();
... // fill the list somehow
List<int> referece = null;
if (doThis)
referece = aList;
else
referece = bList;
if(reference != null)
reference.DoSomethingWithSelectedList();
List<T>
是类(引用类型),类型List<T>
的任何变量都是对类List<T>
的对象的引用。
答案 1 :(得分:1)
您需要List<int>
上的扩展方法,如下所示:
public static void DoSomethingWithSelectedList(this List<int> myList)
{
// your code
}
和List是c#中的引用类型。
答案 2 :(得分:0)
您应该设计自己的列表,而不是从List派生,而是实现ICollection接口,添加您需要的所有方法