如何使用LINQ方法语法按属性顺序进行分组和处理

本文关键字:处理 顺序 属性 LINQ 何使用 方法 语法 | 更新日期: 2023-09-27 18:04:10

我有一个具有以下模式的请求表:

REQ_SOURCE(int), REQ_DATE (datetime), REQ_NAME (string)

我需要按照REQ_DATE的顺序遍历每个REQ_SOURCE的请求。例如,需要首先评估具有最早请求的请求源。下面的代码能做到这一点吗?

var requestSourceOrdered = requests
    .GroupBy(x => x.REQ_SOURCE)
    .OrderBy(x => x.Min(y => y.REQ_DATE))
    .Select(x => x.Key)
    .ToList();
foreach(var requestSource in requestSourceOrdered) 
{
  //Process requestSource here
}

如何使用LINQ方法语法按属性顺序进行分组和处理

您的代码似乎只返回每个请求源最早的请求。如果你想做的是迭代所有的请求,下面的代码片段应该有帮助。

var requestSourceOrdered = requests
       .GroupBy(x => x.REQ_SOURCE)
       .SelectMany(x => x.OrderBy(y => y.REQ_DATE))
       .ToList()

希望有帮助!