如何订购groupBy项目
本文关键字:项目 groupBy 何订购 | 更新日期: 2023-09-27 18:15:30
Linq查询返回4个DateTime
组:
IEnumerable<IGrouping<DateTime, QuoteSnapshotModel>> lista = (from q in quoteModeList
where q.QuoteTradeType == "Q"
select q).GroupBy(n => n.ExceriseDate);
如何按DateTime
排序而只得到第一组?含义**List<QuoteSnapshotModel>**
还有,我怎么能只得到第二个List<QuoteSnapshotModel>
(根据DateTime
)
试试这个:
为此,您必须在QuoteSnapshotModel
类中创建list<QuoteSnapshotModel
>。
int record = 1;
List<QuoteSnapshotModel> result =
quoteModeList
.Where(x => x.QuoteTradeType == "Q")
.GroupBy(x => x.ExceriseDate,
(a, b) => new QuoteSnapshotModel
{
ExceriseDate = a,
ListQuoteSnapshotModel = b.ToList()
})
.OrderByDescending(t => t.ExceriseDate)
.Skip(record - 1).Take(1).ToList();
更新
只能使用第一组
List<QuoteSnapshotModel> list =quoteModeList.Where(x=>x.QuoteTradeType =="Q")
.GroupBy(x => x.ExceriseDate)
.OrderBy(x=>x.Key)
.FirstOrDefault().Select(x=>x.QuoteTradeType).ToList();
只能使用第二组
List<QuoteSnapshotModel> list =quoteModeList.Where(x=>x.QuoteTradeType =="Q")
.GroupBy(x => x.ExceriseDate)
.OrderBy(x=>x.Key)
.Skip(1).First().Select(x=>x.QuoteTradeType).ToList()
如何按DateTime排序
.OrderBy(g => g.Key)
或.OrderBy(g => g.First().ExerciseDate)
只得到第一组?
.First()
(或.FirstOrDefault()
,如果可能的话,有0组)
我怎样才能只得到第二个列表(根据DateTime)
.Skip(1).Take(1)
或.ElementAt(1)
或.Skip(1).First()
把它们放在一起:
IEnumerable<IGrouping<DateTime, QuoteSnapshotModel>> lista = (
from q in quoteModeList
where q.QuoteTradeType == "Q"
select q
).GroupBy(n => n.ExerciseDate);
IList<QuoteSnapshotModel> firstQuote = lista.OrderBy(x => x.Key).Select(x => x.ToList()).FirstOrDefault();
IList<QuoteSnapshotModel> secondQuote = lista.OrderBy(x => x.Key).Skip(1).Select(x => x.ToList()).FirstOrDefault();