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. Dans Java pour obtenir le premier élément de la liste, ce serait:
list1.get(0);
Quel est l'équivalent en c #?
list1[0];
En supposant que le type de liste a 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
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
Ancienne question, mais je vois que ce fil était actif depuis peu, je vais donc y aller et ajouter mes deux sous:
Presque exactement ce que Mitch a dit. En supposant que l'indexation soit 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 effectuer une recherche/un accès simultanés en tapant quelque chose comme:
var temp = list1["DesiredMember"];
Plus vous en savez, non?
c'est mon code. le code utilise une liste et un bouton de sélection. ElementAt () utilisé pour sélectionner un élément dans une liste en fonction de l'élément sélectionné:
public class Test
{
private struct Data
{
public int Id { get; set; }
public string Text { get; set; }
}
private List<Data> data = null;
private Data SelDataReg { get; set; } = null;
private void Start()
{
this.data = new List<Data>
{
new Data{ Id = 0, Text = "Reg 0" }
, new Data{ Id = 1, Text = "Reg 1" }
, new Data{ Id = 2, Text = "Reg 2" }
, new Data{ Id = 3, Text = "Reg 3" }
};
// ListBox
this.ListBoxControl.DisplayMember = "Text";
this.ListBoxControl.DataSource = this.data;
}
private void ButSelect_Click(object sender, EventArgs e)
{
if(this.ListBoxControl.SelectedIndex == -1) return;
this.SelDataReg = this.data.ElementAt(this.ListBoxControl.SelectedIndex);
MessageBox.Show("Okay, you are selected " + this.SelDataReg.Text);
}
}