私はリストを持っています:
List<string> theList = new List<string>;
リストにはいくつかの要素があります。そして今、インデックスでアイテムを取得したいと思います。たとえば、要素番号 4 を取得したいのですが、どうすればよいですか?
私はリストを持っています:
List<string> theList = new List<string>;
リストにはいくつかの要素があります。そして今、インデックスでアイテムを取得したいと思います。たとえば、要素番号 4 を取得したいのですが、どうすればよいですか?
インデクサーを使うだけ
string item = theList[3];
C# のインデックスは 0 ベースであることに注意してください。したがって、リストの 4 番目の要素が必要な場合は、インデックス 3 を使用する必要があります。5 番目の要素が必要な場合は、インデックス 4 を使用します。意図した質問からは不明です
インデクサーは、.Net コレクション型の一般的な機能です。リストの場合は一般にインデックス ベースであり、マップの場合はキー ベースです。問題のタイプのドキュメントには、どのタイプが利用可能かが記載されています。ただし、インデクサー メンバーは、名前が付けられたプロパティとして一覧表示されます。Item
4 番目のアイテムを取得するには、インデクサーを使用できます。
string item = theList[3];
メソッドを使用したい場合は、ElementAt
または ( ElementAtOrDefault
)を使用できます。
string item = theList.ElementAt(3);
を使用しIndexer
て、選択したアイテムを取得できますindex
string item = theList[3];
インデクサーを使用します。
string the4th = theList[3];
インデックスは常にゼロから始まるため、リストに含まれる項目が 3 つ以下の場合は例外がスローされることに注意してください。次に使用したい場合がありますEnumerable.ElementAtOrDefault
:
string the4th = theList.ElementAtOrDefault(3);
if(the4th != null)
{
// ...
}
ElementAtOrDefault
index < list.Count
ifおよびdefault(T)
ifは、指定されたインデックスの要素を返しますindex >= theList.Count
。したがって、参照型( などString
)の場合は戻りnull
、値型の場合はデフォルト値( の場合は 0など)を返しますint
。
実装するコレクション型IList<T>
(配列またはリスト) の場合は、インデクサーを使用して要素を取得し、他の型の場合はforeach
ループとカウンター変数を使用します。
したがって、Count
プロパティを使用して、リストにインデックスに十分な項目が含まれているかどうかを確認することもできます。
string the4th = null;
if(index < theList.Count)
{
the4th = theList[index];
}
インデクサー構文を使用します。
var fourthItem = theList[3];
これでうまくいくはずです。配列インデックスを介してアクセスします。
theList[3]
インデックスが0から始まるため、その3。