我正在编写一个c#控制台程序。 我有一个返回对象列表的函数。
例如,以下内容将返回对象列表。
p.getList();
如果我已经知道要从列表中引用的对象的索引,那么如何访问它? 例如,我想做以下显然是不正确的:
p.getList()[Index]
这会给我索引列表中的项目。
为了解决这个问题,我做了以下几点:
List<MyObject> mylist = p.getList();
mylist[Index];
但上面似乎效率低下,必须创建一个副本只是为了引用一个值。
有关我如何访问的任何提示?
感谢。
答案 0 :(得分:3)
如果您不想要列表,只需要item
并且您知道Index
那么
var item = p.getList()[Index];
语法完全正确。请注意,List<T>
是引用类型,这就是
var list = p.getList(); // reference copy, not the collection cloning
var item = list[Index];
...
var otherItem = list[otherIndex];
var list = p.getList();
增加了一个微不足道的开销:它是引用,而不是整个集合被复制。