2011-03-08 9 views
1

リストには文字列のセットが含まれています。インデックスに基づいてリストにあるデータをフェッチしたいのですが、イテレータを使用しないでください。get ()またはgetat()を使用して取り出すことのできる何らかの方法?イテレータを使わずにリストからデータを取得する方法#

+1

**リスト**のようにいくつかの詳細を提供しています**リストまたは他のコレクションですか? –

答えて

7

はmyList [インデックス]あなたのコレクションがIList<T>を実装している場合だけでインデクサーを使用し、

List<string> myList = new List<string>(); 
myList.Add("string 1"); 
myList.Add("String 2"); 

Console.WriteLine(myList[0]); // string 1 
Console.WriteLine(myList[1]); // String 2 
1

あなたはただ行うことができます。

item = list[i]; 
6
List<string> myList = new List<string(); 
//add some elements to the list 
//then get the third element 
string thirdElement = myList[2]; 
1

は、オーバーロードインデックス演算子を使用します。

List<String> list; // ... initialize, populate list 
String element = list[1]; // get the element at index 1 
0

を移動するための方法です。そうでない場合、コレクションが転送のみのアクセスを許可する場合(すなわち、IEnumerable<T>を実装する場合)、ElementAt()メソッドを使用できますが、それでもフードの下でイテレータを使用します。

0

あなたは正確に何を言っているのか分かりませんが、.netのほとんどのコレクションにはCopyToという機能があり、[]オペレータで個々のアイテムにアクセスできます。

0
List<string> list = new List<string>(); 
list.Add("lots of strings"); 

//If you want to print all the strings you can do: 
foreach(string str in list) 
    Console.WriteLine(str); 

//If you want to modify each string in the list, make each lower case for example, 
// you can do. this is working by using the index of the elements in the list: 
for(int i = 0; i < list.Count; i++) 
    list[i] = list[i].ToLower(); 
0

あなたはジェネリック型一覧(またはのIListの別の実装)を使用する場合は、直接、特定の位置でのアイテムにアクセスするには、インデックス演算子を使用することができます。item = myList[3]

あなたがそのタイプを使用している場合IEnumerableを実装する場合は、ElementAt()機能を使用する必要があります。

イテレータの使用を避ける理由は何ですか?

関連する問題