J'ai récemment commencé à utiliser c # en passant de Java. Je n'arrive pas à trouver comment obtenir un élément de liste par index. En java pour obtenir le premier élément de la liste ce serait:
list1.get(0);
Quel est l'équivalent en c #?
J'ai récemment commencé à utiliser c # en passant de Java. Je n'arrive pas à trouver comment obtenir un élément de liste par index. En java pour obtenir le premier élément de la liste ce serait:
list1.get(0);
Quel est l'équivalent en c #?
Réponses:
list1[0];
En supposant que le type de liste possède un indexeur défini.
Vous pouvez utiliser la méthode d'extension ElementAt dans la liste.
Par exemple:
// Get the first item from the list
using System.Linq;
var myList = new List<string>{ "Yes", "No", "Maybe"};
var firstItem = myList.ElementAt(0);
// Do something with firstItem
using System.Linq;
.
myList[0]
notation standard ?
.ElementAtOrDefault();
myCollectionWhichMightBeNull?.ElementAt(0)
ou pour protéger contre un élément inexistant:myCollection.ElementAtOrDefault(0)?.SomeProperty
Visual Basic, C # et C ++ ont tous une syntaxe pour accéder à la propriété Item sans utiliser son nom. Au lieu de cela, la variable contenant la liste est utilisée comme s'il s'agissait d'un tableau.
List[index]
Voir par exemple: https://msdn.microsoft.com/en-us/library/0ebtbkkc(v=vs.110).aspx
Vieille question, mais je vois que ce fil était assez récemment actif, alors je vais continuer et jeter mes deux cents:
À peu près exactement ce que Mitch a dit. En supposant une indexation correcte, vous pouvez simplement continuer et utiliser la notation entre crochets comme si vous accédiez à un tableau. En plus d'utiliser l'index numérique, cependant, si vos membres ont des noms spécifiques, vous pouvez souvent faire une sorte de recherche / accès simultanés en tapant quelque chose comme:
var temp = list1["DesiredMember"];
Plus vous en savez, non?
La List
structure de données .NET est Array
dans un "shell mutable".
Vous pouvez donc utiliser des index pour accéder à ses éléments comme:
var firstElement = myList[0];
var secondElement = myList[1];
À partir de C # 8.0, vous pouvez utiliser des classes Index
et Range
pour accéder aux éléments. Ils permettent d'accéder à la fin de la séquence ou d'accéder simplement à une partie spécifique de la séquence:
var lastElement = myList[^1]; // Using Index
var fiveElements = myList[2..7]; // Using Range, note that 7 is exclusive
Vous pouvez combiner des index et des plages ensemble:
var elementsFromThirdToEnd = myList[2..^0]; // Index and Range together
Vous pouvez également utiliser la ElementAt
méthode LINQ mais pour 99% des cas, ce n'est vraiment pas nécessaire et juste une solution de performance lente.