web-dev-qa-db-fra.com

Obtenir un élément de liste par index

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 #?

279
user1909486
list1[0];

En supposant que le type de liste a un indexeur défini.

320
Mitch Wheat

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
209
user3004826

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

24
Zeyad Qunees

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?

18
Xellarant

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);
        }
    }
1
Ángel Ibáñez