var latestData = logs.OrderByDescending(d => d.DATE).FirstOrDefault(); if (latestData.STEP_ID == model.STEP_ID && latestData.STATUS == model.STATUS) { return "success"; } 优化代码
时间: 2024-03-11 10:51:24 浏览: 70
可以使用 LINQ 的 Where() 方法来筛选符合条件的数据,然后再使用 OrderByDescending() 和 FirstOrDefault() 方法来获取最新的一条数据,代码如下:
```csharp
var latestData = logs.Where(d => d.STEP_ID != model.STEP_ID || d.STATUS != model.STATUS)
.OrderByDescending(d => d.DATE)
.FirstOrDefault();
if (latestData == null)
{
// 没有符合条件的数据
}
else
{
// 返回最新的一条数据
}
```
其中,`logs` 是你的日志列表,`DATE` 是日期属性,`STEP_ID` 是步骤标识属性,`STATUS` 是状态属性,`model` 是你要比较的模型对象。
这段代码首先使用 Where() 方法来筛选步骤标识或状态与模型对象不同的数据,然后按照日期降序排列,获取排序后的第一条数据,即为最新的一条数据。如果最新数据不存在,则表示没有符合条件的数据。
阅读全文