如何订购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)

如何订购groupBy项目

试试这个:

为此,您必须在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();