it-swarm.com.de

Listenelement nach Index abrufen

Ich habe vor kurzem begonnen, C # zu verwenden, das von Java übergeht. Ich kann anscheinend nicht finden, wie ich einen Listeneintrag nach Index erhalten kann. In Java, um das erste Element der Liste zu erhalten, wäre dies:

list1.get(0);

Was ist das Äquivalent in c #?

279
user1909486
list1[0];

Angenommen, für den Listentyp ist ein Indexer definiert.

320
Mitch Wheat

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

Zum Beispiel:

// 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 # und C++ verfügen alle über eine Syntax für den Zugriff auf die Item-Eigenschaft, ohne den Namen zu verwenden. Stattdessen wird die Variable mit der Liste als Array verwendet.

List[index]

Siehe zum Beispiel: https://msdn.Microsoft.com/en-us/library/0ebtbkkc (v = vs.110) .aspx

24
Zeyad Qunees

Alte Frage, aber ich sehe, dass dieser Thread in letzter Zeit ziemlich aktiv war, also werfe ich meine zwei Cent ein:

Ziemlich genau das, was Mitch gesagt hat. Unter der Annahme einer ordnungsgemäßen Indizierung können Sie einfach die eckige Klammer verwenden, als ob Sie auf ein Array zugreifen würden. Zusätzlich zur Verwendung des numerischen Index können Sie, wenn Ihre Mitglieder bestimmte Namen haben, häufig eine Art gleichzeitige Suche/Zugriff durchführen, indem Sie Folgendes eingeben:

var temp = list1["DesiredMember"];

Je mehr du weißt, richtig?

18
Xellarant

das ist mein Code. Der Code verwendet eine Listbox und eine Auswahltaste. ElementAt (), wie es für die Auswahl eines Elements in einer Liste gemäß der Listbox selectedItem verwendet wird:

    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