c# – LINQ只与具有列最大值的行保持连接
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – LINQ只与具有列最大值的行保持连接,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1568字,纯文字阅读大概需要3分钟。
内容图文
![c# – LINQ只与具有列最大值的行保持连接](/upload/InfoBanner/zyjiaocheng/795/6330c352e8c548878025d1b296f5b0cd.jpg)
我有一个表项目信息为(左表)
ProjectID int
{fields}
另一个表,ProjectUpdates(右表).此表具有每月添加1个ProjectID的多条记录.
ProjectID int
CreateDate date
{other fields that have records}
他们的关系是1-M.
样本数据
ProjectInformation
{ ProjectID = 1, DataA = "ABC"}
{ ProjectID = 2, DataA = "DEF"}
{ ProjectID = 3, DataA = "GHI"}
ProjectUpdates
{ProjectID = 1, CreateDate = "24/2/2014", DataB = "JKL"}
{ProjectID = 1, CreateDate = "25/1/2014", DataB = "MNL"}
{ProjectID = 1, CreateDate = "23/12/2014", DataB = "PQR"}
{ProjectID = 1, CreateDate = "23/11/2014", DataB = "STU"}
{ProjectID = 2, CreateDate = "24/2/2014", DataB = "VWX"}
{ProjectID = 2, CreateDate = "24/1/2014", DataB = "YZA"}
{ProjectID = 3, CreateDate = "21/12/2014", DataB = "BCD"}
{ProjectID = 3, CreateDate = "24/11/2014", DataB = "EFG"}
{ProjectID = 3, CreateDate = "24/10/2014", DataB = "HIJ"}
{ProjectID = 3, CreateDate = "24/8/2014", DataB = "KLM"}
{ProjectID = 3, CreateDate = "24/6/2014", DataB = "NOP"}
我希望我的LINQ查询返回以下数据(每个项目1行)
标准:左表中的行将与右侧的行连接,该行具有项目的最大CreateDate值.
{ProjectID = 1, CreateDate = "24/2/2014", DataA ="ABC", DataB = "JKL"}
{ProjectID = 2, CreateDate = "24/2/2014", DataA ="DEF", DataB = "VWX"}
{ProjectID = 3, CreateDate = "21/12/2014", DataA ="GHI", DataB = "BCD"}
解决方法:
你可以做很多事.其中一种方式是:
var result = (from pi in projectInformations
join pu in projectUpdates on pi.ProjectID equals pu.ProjectID into tpu
from t in tpu.OrderByDescending(c => c.CreateDate).Take(1)
select new { pi.ProjectID, pi.DataA, t.CreateDate, t.DataB }).ToList();
内容总结
以上是互联网集市为您收集整理的c# – LINQ只与具有列最大值的行保持连接全部内容,希望文章能够帮你解决c# – LINQ只与具有列最大值的行保持连接所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。