2

可能重复:
如何在 Linq 查询中选择最小和最大日期值

我首先要说我对 LINQ 的经验非常有限。我一直在使用嵌套的 if 语句来查找 3 中最旧的文件,它工作得很好。但我正在尝试扩大我对新技术的使用。我读到的很多关于 LINQ 的内容很快就让我难以理解。尤其是当他们开始使用 lambda 时。所以我可以获得 3 个文件的日期,但是如何使用 LINQ 获取其中最旧的文件?或者甚至有可能吗?我有下面的伪代码。

        DateTime file1 = File.GetLastWriteTime(@"c:\test1.txt");
        DateTime file2 = File.GetLastWriteTime(@"c:\test2.txt");
        DateTime file3 = File.GetLastWriteTime(@"c:\test3.txt");

        DateTime[] dates = { file1, file2, file3 };

        var date = from d in dates
                   where d is oldest date
                   select d;

谢谢

4

4 回答 4

8
var result = dates.Min();

是你所需要的全部。

于 2012-10-19T21:21:42.937 回答
4

使用Min. 像这样排序:

var oldestdate = (from d in dates
                   select d).Min();
于 2012-10-19T21:19:14.953 回答
4
DateTime oldest = dates.Min();
于 2012-10-19T21:21:07.583 回答
1

没有任何IDE方便,但我认为您可以使用扩展方法dates.Min()

根据我的记忆,如果 System.Linq 没有明确包含在您的使用中,您可能需要包含它。

于 2012-10-19T21:21:22.020 回答