我最近开始使用C#,从Java转换过来。我似乎找不到如何按索引获取列表项。在Java中,要获取列表的第一项:
list1.get(0);
C# 中的等价物是什么?
list1[0];
假设列表类型已定义索引器。
// 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
using System.Linq;
命名空间。 - ngmmyList[0]
写法相比,有什么优势吗? - AnalogWeapon.ElementAtOrDefault();
- amit jhamyCollectionWhichMightBeNull?.ElementAt(0)
或者为了防范不存在的元素而保护:myCollection.ElementAtOrDefault(0)?.SomeProperty
。 - Chris Peacock因此,您可以使用索引访问其元素,例如:
var firstElement = myList[0];
var secondElement = myList[1];
从C# 8.0开始,您可以使用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%的情况下,这真的不是必要的,只会导致性能变慢。
虽然这是一道老问题,但我看到这个帖子最近还是很活跃,所以我会加入我的两分钱:
基本上就像Mitch说的那样。假设索引正确,您可以像访问数组一样使用方括号表示法。除了使用数字索引之外,如果成员有特定名称,您通常可以通过输入类似以下内容的东西来进行一种同时搜索/访问:
var temp = list1["DesiredMember"];
你知道的越多,对吧?
你可以使用索引访问列表元素
List<string> list1 = new List<string>();
list1[0] //for getting the first element of the list