4

我有一个清单:

List<string> theList = new List<string>;

列表中有一些元素。现在我想通过索引获取一个项目。例如,我想获得元素编号 4。我该怎么做?

4

7 回答 7

10

只需使用索引器

string item = theList[3];

请注意,C# 中的索引是基于 0 的。因此,如果您想要列表中的第 4 个元素,您需要使用索引 3。如果您想要第 5 个元素,您将使用索引 4。您的问题不清楚您的意图

索引器是 .Net 集合类型的常见功能。对于列表,它通常基于索引,对于地图,它基于键。相关类型的文档将告诉您哪些以及是否可用。索引器成员将作为名为的属性列出Item

http://msdn.microsoft.com/en-us/library/0ebtbkkc.aspx

于 2013-03-08T17:16:54.367 回答
4

要获得第 4 项,您可以使用索引器:

string item = theList[3];

如果您更喜欢使用方法,则可以使用ElementAtor ( ElementAtOrDefault):

string item = theList.ElementAt(3);
于 2013-03-08T17:16:36.910 回答
1

使用索引器:

string the4th = theList[3];

请注意,如果列表只有 3 个或更少项,则会引发异常,因为索引始终从零开始。您可能想使用Enumerable.ElementAtOrDefault

string the4th = theList.ElementAtOrDefault(3);
if(the4th != null)
{
    // ...
}

ElementAtOrDefaultindex < list.Countif和default(T)if返回指定索引处的元素index >= theList.Count。因此,对于引用类型(如String),它返回null,而对于值类型,则返回它们的默认值(例如 0 表示int)。

对于实现IList<T>(数组或列表)的集合类型,它使用索引器来获取元素,对于其他类型,它使用foreach循环和计数器变量。

因此,您还可以使用该Count属性来检查列表是否包含足够的索引项:

string the4th = null;
if(index < theList.Count)
{
    the4th = theList[index];
}
于 2013-03-08T17:18:15.583 回答
1

您可以使用Indexer 来获取选中的项目index

string item = theList[3];
于 2013-03-08T17:16:57.363 回答
0

这应该这样做,通过数组索引访问。

theList[3] 

它的 3 作为索引从 0 开始。

于 2013-03-08T17:17:41.160 回答
0

使用索引器语法

var fourthItem = theList[3];
于 2013-03-08T17:17:37.113 回答
0

您可以使用索引器获取选定索引处的项目

     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
于 2013-08-10T19:30:27.133 回答