我有以下元组列表:
var allXmlUsers = new List<(string login, string email, string createdOn)>();
allXmlUsers.Add(("thompson", "sdfsd@dkfjdkf.com", "2015-03-04 20:32:04"));
allXmlUsers.Add(("dupont", "asdfdfd@dkfjdkf.com", "2017-03-04 20:32:04"));
allXmlUsers.Add(("james", "dfsdfs33@dkfjdkf.com", "2016-03-04 20:32:04"));
我想用 List<>
替换它只有最近的项目,例如“杜邦”。
我可以像这样返回一个元组对象:
var single = (from x in allXmlUsers orderby x.createdOn descending select x).FirstOrDefault();
然后我返回一个 List<>
像这样重新排序:
var list = from x in allXmlUsers orderby x.createdOn descending select x;
但是我如何返回 List<>
只包含一个元组,即最近的元组,像这样?
//allXmlUsers = ((from x in allXmlUsers orderby x.createdOn descending select x).FirstOrDefault()).ToList();
//(error: cannot resolve symbol to List)
最佳答案
您可以使用Take
方法只从可枚举中取出1个元素
var single = (from x in allXmlUsers orderby x.createdOn descending select x)
.Take(1)
.ToList();
编辑
上面的代码片段将返回一个空列表(其中一个长度为 0),这可能是所需的行为,但您可能还想返回一个包含单个 null
值的列表。如果是这样,您可以使用 DefaultIfEmpty
方法
var single = (from x in allXmlUsers orderby x.createdOn descending select x)
.Take(1)
.DefaultIfEmpty()
.ToList();
关于c# - 如何使用 LINQ 返回包含 List<> 中最新项目的 List<>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50739888/