我最近开始使用从Java转过来的c#。我似乎找不到如何获得一个列表项的索引。在java中,要获得列表的第一项,它将是:
list1.get(0);
c#中对应的是什么?
list1[0];
假设list的类型定义了一个索引器。
您可以使用列表中的ElementAt扩展方法。
例如:
// Get the first item from the list using System.Linq; var myList = new List<string>{ "Yes", "No", "Maybe"}; var firstItem = myList.ElementAt(0); // Do something with firstItem
Visual Basic、c#和c++都有不使用名称访问Item属性的语法。相反,包含List的变量被当作数组使用:
List[index]
例如,参见列表。项[Int32]属性。
老问题,但我看到这个线程最近相当活跃,所以我将继续抛出我的意见:
跟米奇说的差不多假设有适当的索引,您可以继续使用方括号符号,就像访问一个数组一样。除了使用数字索引,但是,如果你的成员有特定的名称,你通常可以通过键入如下内容来进行同步搜索/访问:
var temp = list1["DesiredMember"];
你知道的越多,对吧?
. net List数据结构是“可变shell”中的Array。
List
Array
所以你可以使用索引来访问它的元素,比如:
var firstElement = myList[0]; var secondElement = myList[1];
从c# 8.0开始,你可以使用Index和Range类来访问元素。它们提供了从序列末尾开始的访问,或者只是访问序列的特定部分:
Index
Range
var lastElement = myList[^1]; // Using Index var fiveElements = myList[2..7]; // Using Range, note that 7 is exclusive
你可以将索引和范围组合在一起:
var elementsFromThirdToEnd = myList[2..^0]; // Index and Range together
你也可以使用LINQ ElementAt方法,但在99%的情况下,这真的是不必要的,只是缓慢的性能解决方案。
ElementAt
可以使用index访问列表元素
List<string> list1 = new List<string>(); list1[0] //for getting the first element of the list