2013-03-08 2 views

ответ

4

Чтобы получить 4-й пункт, вы можете использовать индексатор:

string item = theList[3]; 

, если вы предпочитаете использовать методы, то вы можете использовать ElementAt или (ElementAtOrDefault):

string item = theList.ElementAt(3); 
9

Просто используйте индексатор

string item = theList[3]; 

Обратите внимание, что индексы в C# основаны на 0. Поэтому, если вам нужен 4-й элемент в списке, вам нужно использовать индекс 3. Если вы хотите, чтобы 5-й элемент использовался индексом 4. Неясно, из вашего вопроса, который вы намеревались

Индексатор является общей функцией на .Net коллекции. Для списков это, как правило, индекс, для карт, основанных на ключах. Документация для рассматриваемого типа сообщит вам, какая и если она доступна. Член индексатор будет перечислен, хотя, как свойство с именем Item

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

+2

+1 - индексатор 0 на основе. (для контекста другие ответы в то время имели «4» в качестве индекса). – keyboardP

+0

+1 для соответствующего типа – Vogel612

1

Вы можете использовать Indexer, чтобы получить товар в выбранном index

string item = theList[3]; 
0

это должно сделать это, доступ через индекс массива.

theList[3] 

его 3 в начале индекса в 0.

1

Используйте индексатор:

string the4th = theList[3]; 

Обратите внимание, что это бросает исключение, если список содержит только 3 пунктов или меньше, поскольку индекс всегда нуль. Вы можете использовать Enumerable.ElementAtOrDefault тогда:

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

ElementAtOrDefault возвращает элемент по указанному индексу, если index < list.Count и default(T) если index >= theList.Count. Поэтому для ссылочных типов (например, String) он возвращает null и для значений типов их значение по умолчанию (например, 0 для int).

Для типов сбора, которые реализуют IList<T> (массивы или списки), он использует индекс для получения элемента, для других типов он использует цикл 10 и переменную счетчика.

Таким образом, вы можете также использовать Count свойство, чтобы проверить, если список содержит достаточное количество элементов для индекса:

string the4th = null; 
if(index < theList.Count) 
{ 
    the4th = theList[index]; 
} 
+0

спасибо! и значение по умолчанию равно null? – tux007

+0

@ tux007: по умолчанию используется любое значение по умолчанию (тип), отредактировано мое решение. –

1

Вы можете использовать индексацию, чтобы получить товар в выбранном индексе

 string item = theList[3]; 

Или, если вы хотите получить идентификатор (при доступе из базы данных), определите класс, например

public class Person 
    { 
     public int PId; 
     public string PName; 

    } 

и доступ, как следовать

 List<Person> theList = new List<Person>(); 
    Person p1 = new Person(); 
    int id = theList[3].PId 
Смежные вопросы