按索引获取列表项

我最近开始使用从Java转过来的c#。我似乎找不到如何获得一个列表项的索引。在java中,要获得列表的第一项,它将是:

list1.get(0);

c#中对应的是什么?

1120151 次浏览
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

所以你可以使用索引来访问它的元素,比如:

var firstElement = myList[0];
var secondElement = myList[1];

c# 8.0开始,你可以使用IndexRange类来访问元素。它们提供了从序列末尾开始的访问,或者只是访问序列的特定部分:

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%的情况下,这真的是不必要的,只是缓慢的性能解决方案。

可以使用index访问列表元素

List<string> list1 = new List<string>();
list1[0] //for getting the first element of the list