2013-03-17 19 views
207

Ich habe kürzlich angefangen, C# aus Java zu verwenden. Ich finde nicht, wie man einen Listeneintrag per Index erhält. In Java das erste Element der Liste, um es sein würde:Einen Listeneintrag per Index abrufen

list1.get(0); 

Was ist das Äquivalent in C#?

+3

Weil der Benutzer zuletzt am 21. März 2013 gesehen wurde. – displayName

+3

Weitere Informationen darüber, ob der Operator [] oder die Methode ElementAt() verwendet werden soll, finden Sie unter http://stackoverflow.com/questions/5326874/why-would-i-use-enumerable-elementat-versus-the-operator. – ngm

Antwort

236
list1[0]; 

Angenommen, Listentyp hat einen Indexer definiert.

+2

Die einzige Antwort, die erklärt, warum es möglich ist, auf eine Liste zuzugreifen, die ein Objekt ist, wie ein Array – PrashanD

156

Sie können die ElementAt-Erweiterungsmethode in der Liste verwenden.

Zum Beispiel:

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

// Holen Sie sich das erste Element aus der Liste

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

// Tun Sie etwas mit firstItem

+15

Nur um zu bemerken, dass ElementAt() benötigt 'using System.Linq;'. – ngm

+11

Gibt es einen Vorteil gegenüber der Standard-Notation 'myList [0]'? – AnalogWeapon

+0

"Warum sollte ich Enumerable.ElementAt() im Vergleich zum Operator [] verwenden?" https://stackoverflow.com/questions/5326874/why-would-i-use-enumerable-elementat-versus-the-operator – Lavande

14

alte Frage, aber ich sehe, dass dieser Thread nicht allzu langer Zeit aktiv war, so werde ich gehen Sie vor und werfen in meine zwei Cent:

Ziemlich Genau das, was Mitch gesagt hat. Bei richtiger Indizierung können Sie einfach die eckige Klammernnotation verwenden, als ob Sie auf ein Array zugreifen würden. Zusätzlich zu den numerischen Index verwenden, obwohl, wenn Ihre Mitglieder bestimmte Namen haben, können Sie oft tun Art einer gleichzeitigen Suche/Zugang durch so etwas wie eingeben:

var temp = list1["DesiredMember"]; 

Je mehr Sie wissen, nicht wahr?

Verwandte Themen