从c#中的对象列表中获取对象的引用

时间:2012-01-08 22:38:58

标签: c# reference

我希望从对象列表中获取引用,

所以引用我想要对象类型

我将在以下示例中解释

我有像

这样的方法
method (ref Foo foo)
{
//
}

我有一个Foo列表

List<Foo> listFoo;

我想叫这个

method(ref listFoo[i])

所以这会返回一个listfoo的引用,我希望在列表中引用foo数字

感谢

1 个答案:

答案 0 :(得分:1)

如果你的意思是直接数组引用;你不能通过列表获得。尤其是,这是因为列表可以随时重新分配底层数组 - 最多让您的引用混乱。

如果它是一个数组,你可以使用你提到的method(ref arr[index])方法;但与数组。

注意:此技巧仅在两种情况下有用:

  • 您希望重新分配数组中的值
  • 您希望原地访问struct,而不会导致其被复制

对于大多数用途,传递对象引用很好,即

Method(Foo foo); // Foo is a class
...
Method(list[i]); // pass the reference to the object, unrelated to the container