0

リストがあり、それを別のリストにグループ化しています。

から:

List -> "a","b","c","it","as","am","cat","can","bat"

の中へ

List1 -> -a,b,c
List2 -> it,as,am
List3 -> cat,can,bat

このリストから可能なすべての組み合わせを連結して、次のような出力を得るにはどうすればよいですか。

あ、それ、ねこ
b、それ、猫
c、それ、猫
あ、あ、ねこ
ビー、アム、キャット
午前、猫
.
.
.
.
などなど・・・
4

3 に答える 3

2

ネストされた方法で各リストをループして結合するだけです。

StringBuilder sb = new StringBuilder();

for(int i =0; i < list1.Length; i++){
  for(int j =0; j < list2.Length; j++){
    for(int x =0; x < list3.Length; x++){
       sb.AppendFormat("{0},{1},{2}\n", list1[i], list2[j], list3[x]);
    }
  }
}

string result = sb.ToString();
于 2010-05-27T07:45:25.550 に答える
1

どうですか

List<string> l1 = new List<string>();
List<string> l2 = new List<string>();
List<string> l3 = new List<string>();
l1.Add("1");
l1.Add("2");
l1.Add("3");
l2.Add("a");
l2.Add("b");
l2.Add("c");
l3.Add(".");
l3.Add("!");
l3.Add("@");

var product = from a in l1
from b in l2
from c in l3
select  a+","+b+","+c;
于 2010-05-27T08:01:37.193 に答える
1
List<string> result = new List<string>();
foreach (var item in list1
    .SelectMany(x1 => list2
        .SelectMany(x2 => list3
            .Select(x3 => new { X1 = x1, X2 = x2, X3 = x3 }))))
{
    result.Add(string.Format("{0}, {1}, {2}", item.X1, item.X2, item.X3));
}

もちろん、 を使用して直接リストに変換することもできます。ToList()その場合、 はまったく必要ありませんforeach。結果に対して何をする必要があるか...

于 2010-05-27T08:02:56.250 に答える