3

オブジェクトの C# 配列があり、すべてのペアごとの組み合わせを反復処理したい場合、これをどのように行うのが最善でしょうか? 為に:

int[] list = new int[3] {100, 200, 300};

これは次のようになります。

100, 200
100, 300
200, 300

明らかに、任意のサイズの配列を取ることができ、できれば任意のオブジェクト型が機能するようにジェネリックな関数が必要です。

4

3 に答える 3

5

これを試して:

public static IList<Tuple<T,T>> GetPairs<T>(IList<T> list)    
{
    IList<Tuple<T,T>> res = new List<Tuple<T,T>>();
    for (int i = 0; i < list.Count(); i++)
    {
        for (int j = i + 1; j < list.Count(); j++)
        {
            res.Add(new Tuple<T, T>(list[i], list[j]));
        }
    }
    return res;
}
于 2013-09-18T03:00:43.603 に答える
-1
int[] arr = { 800, 11, 50, 771, 649, 770, 240, 9 };      

        for (int i = 0; i < arr.Length; i++)
        {
            for (int j= i; j< arr.Length; j++)
            {
    if(i!=j)


                    //Console.Write(arr[i] + " " + arr[j]);
Console.WriteLine(arr[i] + " " + arr[j]);

            }
        }

「int」の代わりに、オブジェクト型を使用できます。次に、さらにチェックを続ける必要があります。

于 2013-09-18T03:03:29.273 に答える