代码之家  ›  专栏  ›  技术社区  ›  devuxer

用LINQ求二维数组的最小值和最大值

  •  10
  • devuxer  · 技术社区  · 14 年前

    如何使用LINQ获得二维数组的最小值和最大值?清楚地说,我指的是数组中所有项的最小值/最大值(而不是特定维度的最小值/最大值)。

    或者我只是要用传统的方式循环?

    4 回复  |  直到 12 年前
        1
  •  26
  •   Lee    14 年前

    因为数组实现 IEnumerable 你可以这样做:

    var arr = new int[2, 2] {{1,2}, {3, 4}};
    int max = arr.Cast<int>().Max();    //or Min
    
        2
  •  8
  •   Mark Byers    14 年前

    这似乎有效:

    IEnumerable<int> allValues = myArray.Cast<int>();
    int min = allValues.Min();
    int max = allValues.Max();
    
        3
  •  1
  •   dondublon    13 年前

    以下是变体:

    var maxarr = (from int v in aarray select v).Max();
    

    其中aarray为int[]

        4
  •  0
  •   Jake Kalstad    14 年前

    您可以实现一个列表,找到Min和Max foreach并将其存储到一个列表中,然后您可以很容易地从一维列表中所有值的列表中找到Min()和Max()。这是我想到的第一件事,我自己对此很好奇,我想看看谷歌是否能采取一种更清晰的方式。