-3

如何仅使用 foreach 循环获取最大价值?

  class Program
{
    static void Main(string[] args)
    {
        var list = new List<DateTime>();
        list.Add(new DateTime(1980, 5, 12));
        list.Add(new DateTime(1960, 1, 2));
        list.Add(new DateTime(1983, 5, 4));
        list.Add(new DateTime(1999, 10, 11));
        list.Add(new DateTime(1913, 4, 7));

        foreach(var date in list)
        {




        };
    }

}

我如何返回“最大”(最新)日期?

4

2 回答 2

4

list.Max()将为您提供列表中的最大日期时间对象。你为什么要在这里使用 foreach 循环呢?

编辑:添加了一个简单的 foreach 逻辑,因为 OP 要求它。

var maxDate = new DateTime(); // initialize to a zero value. 
foreach (var date in list)
{
    if (date > maxDate)
    {
        maxDate = date;
    }
};
于 2012-12-31T08:26:30.223 回答
1

如果你真的想使用你的 foreach 循环,你可以使用一个临时变量来跟踪当前的最大值。

 var list = new List<DateTime>();
 list.Add(new DateTime(1980, 5, 12));
 list.Add(new DateTime(1960, 1, 2));
 list.Add(new DateTime(1983, 5, 4));
 list.Add(new DateTime(1999, 10, 11));
 list.Add(new DateTime(1913, 4, 7));

 DateTime max = DateTime.MinValue;

 foreach (DateTime d in list)
 {
     if (d > max)
         max = d;
 }

但正如 ryadavilli 所建议的,使用 LINQ(语言集成查询)更容易。Linq 是 .NET Framework 中所有集合类型的一组扩展。您可以通过using System.Linq在文件顶部放置一条语句来使用它们。

于 2012-12-31T08:30:26.117 回答