2013-03-17 5 views
207

Я недавно начал использовать C#, перемещающийся из Java. Кажется, я не могу найти, как получить элемент списка по индексу. В Java, чтобы получить первый элемент списка было бы:Получение элемента списка по индексу

list1.get(0); 

Что такое эквивалент в C#?

+3

Поскольку пользователя в последний раз видели 21 марта. – displayName

+3

См. Http://stackoverflow.com/questions/5326874/why-would-i-use-enumerable-elementat-versus-the-оператор для обсуждения вопроса о том, следует ли использовать оператор [] или метод ElementAt(). – ngm

ответ

236
list1[0]; 

Предполагая, что тип списка имеет указатель.

+2

Единственный ответ, объясняющий, почему можно получить доступ к списку, который является объектом, как массив – PrashanD

156

Вы можете использовать метод расширения ElementAt в списке.

Например:

var myList = new List<string>{ "Yes", "No", "Maybe"}; 

// Получить первый элемент из списка

using System.Linq; 
var firstItem = myList.ElementAt(0); 

// Сделайте что-нибудь с firstItem

+15

Просто обратите внимание, что ElementAt() требует 'using System.Linq;'. – ngm

+11

Есть ли какие-либо преимущества для этого в стандартной записи 'myList [0]'? – AnalogWeapon

+0

«Зачем использовать Enumerable.ElementAt() по сравнению с оператором []? https://stackoverflow.com/questions/5326874/why-would-i-use-enumer-elementat-versus-the-operator – Lavande

18

Visual Basic, C# и C++ все имеют синтаксис для доступа к свойству Item без использования его имени. Вместо этого переменная, содержащая List, используется так, как если бы она была массивом.

List[index] 

См, например: https://msdn.microsoft.com/en-us/library/0ebtbkkc(v=vs.110).aspx

14

Старый вопрос, но я вижу, что эта нить была довольно активных в последнее время, так что я буду идти вперед и бросить в мои два цента:

Довольно точно, что сказал Митч. Предполагая правильную индексацию, вы можете просто использовать квадратную скобку, как если бы вы обращались к массиву. В дополнение к использованию числовой индекс, хотя, если ваши члены имеют конкретные имена, вы можете часто делать вид одновременного поиска/доступа, набрав что-то вроде:

var temp = list1["DesiredMember"]; 

Чем больше вы знаете, не так ли?

Смежные вопросы