私はいくつかの値を持つリストを持っています.1 2 3 4 5 6としましょう
次のようにペアにする必要があります: 12 13 14 15 16 23 24 25 26 34 35 36 45 46 56
基本的に、それらをすべて混ぜ合わせて独自の値のセットを作成する必要があります。
このような新しいリストを作成する方法について何かアイデアはありますか?
ご意見ありがとうございます。
あなたがLinqが好きなら:
var ar = new int[] {1, 2, 3, 4, 5};
var combo = (from left in ar
from right in ar where right > left
select new { left, right }).ToArray();
サンプルからのデータについては、ネストされたループの単純なペアを使用して実行できます。
var list = new List<int>{1,2,3,4,5,6};
var res = new List<int>();
for (int i = 0 ; i != list.Count ; i++) {
for (int j = i+1 ; j != list.Count ; j++) {
res.Add(list[i]*10+list[j]);
}
}
より複雑なデータの場合は、文字列連結のトリックを使用できます。
var list = new List<int>{98,76,54,32,10};
var res = new List<int>();
for (int i = 0 ; i != list.Count ; i++) {
for (int j = i+1 ; j != list.Count ; j++) {
res.Add(int.Parse(string.Format("{0}{1}", list[i], list[j])));
}
}
var newList = new List<int>();
foreach(var i in originalList)
for(int j = i + 1; j < originalList.Count; ++j)
newList.Add(originalList[i] * 10 + originalList[j]);
助けるべき...