1

List<List<string>>情報があります。それは他の3つのリストでいっぱいです。これらのサブリストのそれぞれに対して、3 つの別々のことを実行できる必要があります。各サブリストにアクセスするにはどうすればよいですか?

より明確にするために、リストはこのようにメインリストに追加されました

infomration.Add(sublist1);//where each sublist is a List<string> and information is a <List<List<string>>
infomration.Add(sublist2);
infomration.Add(sublist3);
reutrn information;
4

5 に答える 5

3

リスト内の 3 つの要素 (リスト) に対して 3 つの別々の操作を実行したいとします。インデックスが作成されているのでLists、この方法でアクセスしないのはなぜですか?

PerformOperationOne(myListofLists[0]);
PerformOperationTwo(myListofLists[1]);
PerformOperationThree(myListofLists[2]);
于 2012-12-03T10:58:00.740 に答える
1

Enumerable.ElementAt(またはリストの単純なインデクサー)を 使用できます:

List<string> first = lists.ElementAt(0);
List<string> second = lists.ElementAt(1);
List<string> third = lists.ElementAt(2);

doSomethingWith(first);
doSomethingWith(second);
doSomethingWith(third);
于 2012-12-03T11:00:14.987 に答える
0

コレクション内のすべてのリストに対して同じ操作を行うには

foreach(List<string> list in information) {
    DoSomething(list);
}

ただし、アイテムごとに異なることを行う必要がある場合は、以前のソリューションに従ってインデックスを指定できます。または、追加機能のために、スイッチに配置して各エンティティで複数の異なるアクションを実行することもできます。

int counter = 0;
foreach(List<string> list in information) {
    switch(counter) {
        case 0:
            // First action
            list = DoSomething(list);
            break;
        case 1:
            // Second action
            list = DoSomethingElse(list);
            break;
        case 2:
            // Third action
            list = DoSomethingWeird(list);
            list = DoAnotherThing(list);
            break;
        default:
            // Do something if there's more than 3 items in the list
            SendErrorReport();
            break;
    }
    counter++;
}
于 2012-12-03T11:27:28.833 に答える
0
    List<List<string>> lists = new List<List<string>>();
    lists.ForEach(i =>
    {
        i.Count();//do something
    });
于 2012-12-03T10:56:54.507 に答える
0

各リストに個別にアクセスする必要がある場合は、おそらく a を使用するDictionary<string,List<string>>必要がありますが、リストごとに異なることを行う必要があるため、それらすべてを単一の結合構造に入れるのではなく、おそらく 3 つの個別のリストが最適です。

これにより、キーで各リストにアクセスできます。

var aList = myDictionary["the wanted list key"];

ただし、内部リストのインデックスがわかっている場合は、インデックスでアクセスできます。

var anInnerList = listOfLists[0];
于 2012-12-03T10:57:16.637 に答える