c# - LINQ 查询获取每个其他值的最早条目

标签 c# linq

假设我有一个包含大量股票报价的数据库

TableQuotes
2010-07-22 09:45:00.000, "ABC", 102.23
2010-07-22 09:45:00.000, "EFG", 24.65
2010-07-22 09:45:00.000, "HIJ", 14.20
2010-07-22 10:45:00.000, "ABC", 104.25
2010-07-22 10:45:00.000, "EFG", 26.09
2010-07-22 10:45:00.000, "HIJ", 12.43
2010-07-23 09:45:00.000, "ABC", 101.23
2010-07-23 09:45:00.000, "EFG", 23.65
2010-07-23 09:45:00.000, "HIJ", 16.20
2010-07-23 10:45:00.000, "ABC", 99.26
2010-07-23 10:45:00.000, "EFG", 22.09
2010-07-23 10:45:00.000, "HIJ", 11.43
...

我想知道如何编写一个查询:
1. 每天每个代码只抓取一个股票报价
2. 抓取每个品种每天最早的股票行情

例如,我的示例表的预期结果是:

Result
2010-07-22 09:45:00.000, "ABC", 102.23
2010-07-22 09:45:00.000, "EFG", 24.65
2010-07-22 09:45:00.000, "HIJ", 14.20
2010-07-23 09:45:00.000, "ABC", 101.23
2010-07-23 09:45:00.000, "EFG", 23.65
2010-07-23 09:45:00.000, "HIJ", 16.20

最佳答案

var result = from tq in TableQuotes
group tq by new {tq.TimeStamp.Date, tq.Symbol} into g
select g.OrderBy(tq => tq.TimeStamp).First();

关于c# - LINQ 查询获取每个其他值的最早条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3322564/

相关文章:

c# - 如何在 LinqToSQL 中进行联接?

c# - 连接项目列表中的属性

c# - 在大写字母之间创建空间并在连续之间跳过空间

c# - 在循环突然停止的特定路径中创建 (N) 个目录

c# - 如何在winform应用程序中生成产品收据?

C# 在窗体之间传递多维数组

c# - 继承IdentityUser时如何创建新用户

c# - Linq - 如何聚合另一个查询的结果

c# - Context.Request.Cookies 和 Context.RequestCookies 之间的 SignalR 区别

c# - 是否可以以编程方式清除控制台历史记录?