2

私はいくつかの値を持つリストを持っています.1 2 3 4 5 6としましょう

次のようにペアにする必要があります: 12 13 14 15 16 23 24 25 26 34 35 36 45 46 56

基本的に、それらをすべて混ぜ合わせて独自の値のセットを作成する必要があります。

このような新しいリストを作成する方法について何かアイデアはありますか?

ご意見ありがとうございます。

4

4 に答える 4

7

あなたが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();
于 2012-10-01T00:37:38.287 に答える
2

サンプルからのデータについては、ネストされたループの単純なペアを使用して実行できます。

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])));
    }
}
于 2012-10-01T00:35:13.880 に答える
1
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]);

助けるべき...

于 2012-10-01T00:34:09.097 に答える