linq 获取日期最新的一条数据和第二新的日期的数据,如果两条数据的STEP_ID和STATUS都是一样的,则返回错误
时间: 2024-03-11 19:51:10 浏览: 20
可以使用 LINQ 的 OrderByDescending() 和 ThenBy() 方法来实现获取日期最新的一条数据和第二新的日期的数据,并排除步骤标识和状态都相同的情况,代码如下:
```csharp
var latestData = yourDataList.OrderByDescending(d => d.Date)
.ThenByDescending(d => d.Id)
.FirstOrDefault();
var secondLatestData = yourDataList.OrderByDescending(d => d.Date)
.ThenByDescending(d => d.Id)
.Skip(1)
.FirstOrDefault(d => d.StepId != latestData.StepId || d.Status != latestData.Status);
if (secondLatestData == null)
{
// 第二新的数据不存在,或者与最新数据的步骤标识和状态相同,返回错误
}
else
{
// 返回最新数据和第二新的数据
}
```
其中,`yourDataList` 是你的数据列表,`Date` 是日期属性,`Id` 是数据唯一标识属性,`StepId` 是步骤标识属性,`Status` 是状态属性。
这段代码首先获取最新的一条数据,然后跳过第一条数据,获取第二条数据,并判断该数据的步骤标识和状态是否与最新数据一致,如果一致,则返回错误,否则返回最新数据和第二新的数据。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)