C# 是否根据对象属性从列表中查找最新记录?
我有一个类C# 是否根据对象属性从列表中查找最新记录?,c#,linq,C#,Linq,我有一个类测试的列表 public class Test { public int Id { get; set; } public string Name { get; set; } public DateTime CreatedDate { get; set; } public DateTime? ModifiedDate { get; set; } } 列表中有以下数据 List<Test> lstTest = n
测试的列表
public class Test
{
public int Id { get; set; }
public string Name { get; set; }
public DateTime CreatedDate { get; set; }
public DateTime? ModifiedDate { get; set; }
}
列表中有以下数据
List<Test> lstTest = new List<Test>();
lstTest.Add(new Test() { Id = 1, Name = "Test 1", CreatedDate = Convert.ToDateTime("05/05/2005"), ModifiedDate = Convert.ToDateTime("09/05/2005") });
lstTest.Add(new Test() { Id = 2, Name = "Test 2", CreatedDate = Convert.ToDateTime("06/05/2005"), ModifiedDate = Convert.ToDateTime("07/05/2005") });
lstTest.Add(new Test() { Id = 3, Name = "Test 3", CreatedDate = Convert.ToDateTime("08/05/2005"), ModifiedDate = null });
所以第四条记录是基于创建日期的最新记录,所以我们如何才能找到第四条记录
谢谢您可以按日期对列表进行排序,并使用LINQ获取记录:
var latest = lstTest.OrderByDescending(x => x.ModifiedDate ?? x.CreatedDate).First();
您可以按日期对列表进行排序,并使用LINQ获取记录:
var latest = lstTest.OrderByDescending(x => x.ModifiedDate ?? x.CreatedDate).First();
您可以使用LINQ
OrderBy
按日期排序(最早的第一个),然后使用LastOrDefault
获取最后一个条目(如果集合不包含条目,则为null)
使用空合并运算符??
处理ModifiedDate的任何空值,在本例中使用CreationDate进行比较
Test lastEntry = lstTest
.OrderBy(t => t.ModifiedDate ?? t.CreatedDate)
.LastOrDefault();
您可以使用LINQ
OrderBy
按日期排序(最早的第一个),然后使用LastOrDefault
获取最后一个条目(如果集合不包含条目,则为null)
使用空合并运算符??
处理ModifiedDate的任何空值,在本例中使用CreationDate进行比较
Test lastEntry = lstTest
.OrderBy(t => t.ModifiedDate ?? t.CreatedDate)
.LastOrDefault();
试试这个。。。然后你可以找到最新的记录
var latestRecord = lstTest.OrderByDescending(x => x.ModifiedDate ?? x.CreatedDate).FirstOrDefault();
试试这个。。。然后你可以找到最新的记录
var latestRecord = lstTest.OrderByDescending(x => x.ModifiedDate ?? x.CreatedDate).FirstOrDefault();
您可以尝试以下代码: var latestrecord=lstest.OrderByDescending(t=>t.ModifiedDate)
.FirstOrDefault() 您可以尝试以下代码: var latestrecord=lstest.OrderByDescending(t=>t.ModifiedDate)
.FirstOrDefault() Hi@fabjan有可能修改的日期为空,当修改的日期为空时,则需要查看创建的日期date@JasminSolanki更新了my answerHi@fabjan,修改日期可能为空,当修改日期为空时,则需要查看已创建的date@JasminSolanki更新了我的回答“最新更新,因为其修改日期是最新的”。因此,按ModifiedDateAsking订购“最新更新,因为其修改日期是最新的。”“.So order by modifieddate虽然这可能回答了作者的问题,但它缺少一些解释性的词语和指向文档的链接。如果没有一些短语,原始代码片段就没有多大帮助。你也会发现这很有帮助。请编辑您的答案。虽然这可能会回答作者的问题,但它缺少一些解释文字和文档链接。如果没有一些短语,原始代码片段就没有多大帮助。你也会发现这很有帮助。请编辑您的答案。