我有一个清单:
List<string> theList = new List<string>;
列表中有一些元素。现在我想通过索引获取一个项目。例如,我想获得元素编号 4。我该怎么做?
我有一个清单:
List<string> theList = new List<string>;
列表中有一些元素。现在我想通过索引获取一个项目。例如,我想获得元素编号 4。我该怎么做?
只需使用索引器
string item = theList[3];
请注意,C# 中的索引是基于 0 的。因此,如果您想要列表中的第 4 个元素,您需要使用索引 3。如果您想要第 5 个元素,您将使用索引 4。您的问题不清楚您的意图
索引器是 .Net 集合类型的常见功能。对于列表,它通常基于索引,对于地图,它基于键。相关类型的文档将告诉您哪些以及是否可用。索引器成员将作为名为的属性列出Item
要获得第 4 项,您可以使用索引器:
string item = theList[3];
如果您更喜欢使用方法,则可以使用ElementAt
or ( ElementAtOrDefault
):
string item = theList.ElementAt(3);
使用索引器:
string the4th = theList[3];
请注意,如果列表只有 3 个或更少项,则会引发异常,因为索引始终从零开始。您可能想使用Enumerable.ElementAtOrDefault
:
string the4th = theList.ElementAtOrDefault(3);
if(the4th != null)
{
// ...
}
ElementAtOrDefault
index < list.Count
if和default(T)
if返回指定索引处的元素index >= theList.Count
。因此,对于引用类型(如String
),它返回null
,而对于值类型,则返回它们的默认值(例如 0 表示int
)。
对于实现IList<T>
(数组或列表)的集合类型,它使用索引器来获取元素,对于其他类型,它使用foreach
循环和计数器变量。
因此,您还可以使用该Count
属性来检查列表是否包含足够的索引项:
string the4th = null;
if(index < theList.Count)
{
the4th = theList[index];
}
您可以使用Indexer
来获取选中的项目index
string item = theList[3];
这应该这样做,通过数组索引访问。
theList[3]
它的 3 作为索引从 0 开始。
使用索引器语法:
var fourthItem = theList[3];
您可以使用索引器获取选定索引处的项目
string item = theList[3];
或者,如果您想获取 id(如果从数据库访问)定义一个类,例如
public class Person
{
public int PId;
public string PName;
}
并访问如下
List<Person> theList = new List<Person>();
Person p1 = new Person();
int id = theList[3].PId