オブジェクトの C# 配列があり、すべてのペアごとの組み合わせを反復処理したい場合、これをどのように行うのが最善でしょうか? 為に:
int[] list = new int[3] {100, 200, 300};
これは次のようになります。
100, 200
100, 300
200, 300
明らかに、任意のサイズの配列を取ることができ、できれば任意のオブジェクト型が機能するようにジェネリックな関数が必要です。
オブジェクトの C# 配列があり、すべてのペアごとの組み合わせを反復処理したい場合、これをどのように行うのが最善でしょうか? 為に:
int[] list = new int[3] {100, 200, 300};
これは次のようになります。
100, 200
100, 300
200, 300
明らかに、任意のサイズの配列を取ることができ、できれば任意のオブジェクト型が機能するようにジェネリックな関数が必要です。
これを試して:
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;
}
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」の代わりに、オブジェクト型を使用できます。次に、さらにチェックを続ける必要があります。