【问题标题】:Maximum integer value find in list<int>在 list<int> 中找到最大整数值
【发布时间】:2021-06-28 19:20:18
【问题描述】:

我有一个 List&lt;int&gt; 有几个元素。我知道如果我使用foreach 遍历它,我可以获得所有值,但我只想要列表中的最大 int 值。

var l = new List<int>() { 1, 3, 2 };

【问题讨论】:

    标签: c#


    【解决方案1】:

    假设 .NET Framework 3.5 或更高版本:

    var l = new List<int>() { 1, 3, 2 };
    var max = l.Max();
    Console.WriteLine(max); // prints 3
    

    Enumerable 类中有很多像这样的很酷的节省时间的方法。

    【讨论】:

      【解决方案2】:

      使用 Enumerable.Max

      int max = l.Max();
      

      【讨论】:

        【解决方案3】:
        int max = (from l in list select l).Max().FirstOrDefault();
        

        根据评论,这应该是

        l.Max();
        

        【讨论】:

        • 除非l 是一个无法编译的枚举列表,否则(from l in list select l) 也没有意义
        • @Yuriy 你的权利 - 我目前正在做很多 Linq to EF 并且忘记了这是一个简单的 l.Max();我还假设本文标题中声明的 List 是 IEnumerable。
        【解决方案4】:

        你可以使用这个语法:

        l.OrderByDescending(x => x).First(); //for maximum
        
        l.OrderBy(x => x).First(); // for minimum
        

        或者你可以使用 linq 中的 Max() 和 Min() 方法。

        希望我说的对你有用……

        【讨论】:

          【解决方案5】:
          using System.Linq;
          using System.Collections.Generic;
          
          int Max = list.Max();
          

          【讨论】:

          • 这确实回答了问题!但我认为Yuriy 已经涵盖了这一点。
          • @jpaugh 它回答了这个问题,但它重复了之前的两个答案。
          • 我用过 int Max = list.Max();但在我的情况下,命名空间使用 System.Linq;错过了因此 Max() 没有应用于列表。
          • 在使用IDE的时候,很明显没有使用System.Linq,但是对于hackerrank等在线编辑来说,这是一个重要的提示
          【解决方案6】:
          int max = listOfInts[0];
          for(int i = 1; i < listOfInts.Count; i++) {
              max = Math.Max(max, listOfInts[i]);
          }
          

          【讨论】:

            【解决方案7】:

            如果你不想使用 Linq:

            l.Sort();
            int min = l[0]; //1
            int max = l[l.Count - 1]; //3
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-01-10
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多