c#参考参考

时间:2012-07-28 13:06:31

标签: c# reference

有没有办法在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只是选择保存列表的变量。

3 个答案:

答案 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接口,添加您需要的所有方法