web-dev-qa-db-ja.com

インデックスによるリストアイテムの取得

私は最近、Javaからc#に移行し始めました。インデックスでリスト項目を取得する方法が見つかりません。 Javaでリストの最初の項目を取得するには、次のようになります。

list1.get(0);

C#で同等のものは何ですか?

263
user1909486
list1[0];

リストの型にインデクサーが定義されているとします。

302
Mitch Wheat

リスト上でElementAt拡張メソッドを使用できます。

例えば:

// 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
203
user3004826

Visual Basic、C#、およびC++にはすべて、名前を使用せずにItemプロパティにアクセスするための構文があります。代わりに、Listを含む変数は、まるでそれが配列であるかのように使用されます。

List[index]

例を参照してください。 https://msdn.Microsoft.com/ja-jp/library/0ebtbkkc(v=vs.110).aspx

24
Zeyad Qunees

昔の質問ですが、このスレッドはごく最近アクティブになっていることがわかります。そこで先に進み、2セントを投入します。

まさしくミッチが言ったこと。適切なインデックスを作成すると仮定して、配列にアクセスしているかのように角括弧表記を使用することができます。ただし、メンバーに特定の名前がある場合は、数値インデックスを使用するだけでなく、次のように入力して一種の同時検索/アクセスを行うことができます。

var temp = list1["DesiredMember"];

もっと知っている、そうでしょ?

18
Xellarant

これが私のコードです。コードはリストボックスと選択ボタンを使用します。リストボックスのselectedItemに従ったリスト内のselect要素に使用されるElementAt():

    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