452 Stimmen

Erhalten eines Listenelements nach Index

Ich habe kürzlich angefangen, C# zu verwenden, nachdem ich von Java gewechselt bin. Ich kann anscheinend nicht herausfinden, wie man ein Listenobjekt nach Index abruft. In Java würde man das erste Element der Liste mit folgendem Code erhalten:

list1.get(0);

Was ist das Äquivalent in C#?

503voto

Mitch Wheat Punkte 287474
liste1[0];

Assuming list's type has an indexer defined.

308voto

user3004826 Punkte 3159

Sie können die ElementAt-Erweiterungsmethode für die Liste verwenden.

Zum Beispiel:

// Das erste Element der Liste abrufen

using System.Linq;

var myList = new List{ "Ja", "Nein", "Vielleicht"};
var firstItem = myList.ElementAt(0);

// Etwas mit firstItem machen

43voto

Zeyad Qunees Punkte 569

Visual Basic, C# und C++ haben alle eine Syntax zum Zugriff auf die Item-Eigenschaft, ohne deren Namen zu verwenden. Stattdessen wird die Variable, die die Liste enthält, verwendet, als ob sie ein Array wäre:

List[index]

Siehe zum Beispiel List.Item[Int32] Eigenschaft.

26voto

picolino Punkte 3047

.NET List Datenstruktur ist ein Array in einer "veränderlichen Hülle".

Sie können also Indizes verwenden, um auf die Elemente zuzugreifen, z. B.:

var erstesElement = myList[0];
var zweitesElement = myList[1];

Ab C# 8.0 kann man die Klassen Index und Range verwenden, um auf Elemente zuzugreifen. Sie ermöglichen den Zugriff vom Ende der Sequenz aus oder auf einen bestimmten Teil der Sequenz:

var letztesElement = myList[^1]; // Mit Index
var fünfElemente = myList[2..7]; // Mit Range, beachten Sie, dass 7 exklusiv ist

Sie können Indizes und Bereiche auch kombinieren:

var elementeVomDrittenBisEnde = myList[2..^0]; // Index und Range zusammen

Sie können auch die LINQ ElementAt Methode verwenden, aber für 99 % der Fälle ist dies wirklich nicht notwendig und nur eine langsame Lösung.

21voto

Xellarant Punkte 211

Alte Frage, aber ich sehe, dass dieser Thread kürzlich ziemlich aktiv war, also werde ich meine Meinung dazu abgeben:

Ganz genau das, was Mitch gesagt hat. Unter der Voraussetzung einer ordnungsgemäßen Indizierung können Sie einfach die Klammernotation verwenden, als ob Sie auf ein Array zugreifen würden. Zusätzlich zur Verwendung des numerischen Index können Sie jedoch, wenn Ihre Elemente bestimmte Namen haben, oft eine Art simultane Suche und Zugriff durch Eingabe von etwas Ähnlichem wie:

var temp = list1["DesiredMember"];

Je mehr du weißt, nicht wahr?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X