C# 如何使用linq和Compareto方法对二维数组进行排序?

C# 如何使用linq和Compareto方法对二维数组进行排序?,c#,.net,visual-studio,visual-studio-2008,C#,.net,Visual Studio,Visual Studio 2008,如何使用linq对2D数组进行排序,以及如何使用Copareto对不使用linq的2D数组进行排序。我可以用列表来做。但我不喜欢它。你能告诉我一些关于它的想法吗 } 你的问题不是很清楚-你有什么样的输入,你希望得到什么样的输出作为结果 根据您的示例,您似乎只想将2D数组的所有元素作为单个列表获取,然后对这些元素执行一些操作。要将二维数组转换为包含所有元素的单个IEnumerable,可以编写: IEnumerable<T> AsEnumerable(this T[,] arr) {

如何使用linq对2D数组进行排序,以及如何使用Copareto对不使用linq的2D数组进行排序。我可以用列表来做。但我不喜欢它。你能告诉我一些关于它的想法吗

}

你的问题不是很清楚-你有什么样的输入,你希望得到什么样的输出作为结果

根据您的示例,您似乎只想将2D数组的所有元素作为单个列表获取,然后对这些元素执行一些操作。要将二维数组转换为包含所有元素的单个
IEnumerable
,可以编写:

IEnumerable<T> AsEnumerable(this T[,] arr) {
  for(int i = 0; i < arr.GetLength(0); i++)
    for(int j = 0; j < arr.GetLength(1); j++)
      yield return arr[i, j];
}

我不明白一遍又一遍地问同样的问题。
IEnumerable<T> AsEnumerable(this T[,] arr) {
  for(int i = 0; i < arr.GetLength(0); i++)
    for(int j = 0; j < arr.GetLength(1); j++)
      yield return arr[i, j];
}
int[,] data = // get data somwhere
// After 'AsEnumerable' you can use all standard LINQ operations
var res = data.AsEnumerable().OrderBy(n => n).Reverse();