2013-03-17 29 views
207

Niedawno zacząłem używać C# przeskakując z Java. Nie mogę znaleźć sposobu na uzyskanie elementu listy według indeksu. W java, aby uzyskać pierwszą pozycję z listy, będzie to:Uzyskiwanie pozycji listy według indeksu

list1.get(0); 

Co to jest odpowiednik w C#?

+3

Ponieważ użytkownik był ostatnio widziany w dniu 21 marca 13. – displayName

+3

Zobacz http://stackoverflow.com/questions/5326874/why-would-i-use-enumerable-elementat-versus-the-operator, aby dowiedzieć się, czy użyć operatora [] lub metody ElementAt(). – ngm

Odpowiedz

236
list1[0]; 

Przyjmując typ listy zdefiniowano indeksator.

+2

Jedyna odpowiedź, która wyjaśnia, dlaczego możliwe jest uzyskanie dostępu do listy, która jest obiektem, takim jak tablica. – PrashanD

156

Możesz użyć metody rozszerzenia ElementAt na liście.

Na przykład:

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

// Pobierz pierwszą pozycję z listy

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

// zrób coś z firstItem

+15

Trzeba tylko zauważyć, że ElementAt() wymaga 'using System.Linq;'. – ngm

+11

Czy jest jakaś przewaga nad standardową notacją "myList [0]"? – AnalogWeapon

+0

"Dlaczego miałbym używać Enumerable.ElementAt() kontra operatora []?" https://stackoverflow.com/questions/5326874/why-would-i-use-enumerable-elementat-versus-the-operator – Lavande

14

Stare pytanie, ale widzę, że ten wątek był dość niedawno aktywny, więc pójdę do przodu i rzucać w moich dwóch centów:

Całkiem dokładnie to, co powiedział Mitch. Zakładając poprawne indeksowanie, możesz po prostu posunąć się naprzód i użyć notacji z nawiasami kwadratowymi, tak jakbyś uzyskiwał dostęp do tablicy. Oprócz korzystania z indeksu liczbowego, chociaż, jeśli członkowie mają konkretnych nazw, często można zrobić rodzaju jednoczesnego wyszukiwania/dostępu przez napisanie czegoś takiego:

var temp = list1["DesiredMember"]; 

Im więcej wiesz, prawda?

Powiązane problemy