如果我有一个 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[] input = new int[] {100, 200, 300};
List<int[]> result = new List<int[]>();
for(int i=0; i<input.Length-1; i++)
{
for(int j=i+1; j<input.Length; j++)
{
result.Add(new int[]{input[i], input[j]});
}
}
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]);
}
}
您可以采用 Object 类型,而不是 'int'。然后你需要保持进一步的检查。