【请教Tim】 Linq方面的问题

symbol_bc symbol_bc 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
加入我又这样一个集合

List<Grade> gradeList = new List<Grade>() {
new Grade{ ID=1, UserID=100, _Grade=10, DT= DateTime.Parse("2010-10-12"),IsNormal=true },
new Grade{ ID=2, UserID=100, _Grade=20, DT= DateTime.Parse("2010-10-09"),IsNormal=true },
new Grade{ ID=3, UserID=200, _Grade=11, DT= DateTime.Parse("2010-10-11"),IsNormal=true },
new Grade{ ID=4, UserID=100, _Grade=18, DT= DateTime.Parse("2010-10-18"),IsNormal=true },
new Grade{ ID=5, UserID=300, _Grade=2, DT= DateTime.Parse("2010-10-10"),IsNormal=true },
new Grade{ ID=6, UserID=300, _Grade=15, DT= DateTime.Parse("2010-10-13"),IsNormal=true },
new Grade{ ID=7, UserID=300, _Grade=16, DT= DateTime.Parse("2010-10-02"),IsNormal=false }
};

我想求Grade最大的那行的那个对象
我这样写

var q = gradeList.Where(k => k._Grade == gradeList.Max(s => s._Grade));

这没什么问题
然后我想用另一种写法

var query1 = from g in gradeList
where g.ID.Equals(from f in gradeList select gradeList.Max(s => s.ID))
select g;

我这样写的时候,报错说无法将IEnumerable<int> 转化成int
我跟踪一下发现from f in gradeList select gradeList.Max(s => s.ID)这句返回的竟然不是一个int值而是一个集合而且集合中每个grade值都是相同的,都是最大值,这是为什么呢?
最后我只能用这种写法解决

var query1 = from g in gradeList
where g.ID.Equals((from f in gradeList select gradeList.Max(s => s.ID)).First())

是不是有什么其他方法呢?另外,我想问一下这两种写法应该没什么本质区别是吧?那什么时候用哪种呢?我觉得下面这种在笔记哦啊复杂的逻辑时应用,不知道对不对!

还请Tim分享一下这方面的心得。
...全文

相关推荐

《领域驱动设计C# 2008实现问题.设计.解决方案》.((美)Tim McCarthy) [PDF]__0525).rar

《领域驱动设计C# 2008实现问题.设计.解决方案》这本书是美国作者Tim McCarthy的作品,专门探讨了如何在C# 2008环境下应用领域驱动设计(Domain-Driven Design,简称

blog_zj

C编程大师课程项目_由TimCorey主讲涵盖C语言从基础到高级的全面学习内容包括变量声明数据类型控制结构面向对象编程异常处理多线程编程LINQ查询异步编程.zip

在现代编程技术中,LINQ(语言集成查询)是.NET平台上用于查询数据的强大功能。课程中将展示如何在C#语言中使用LINQ技术进行数据查询和操作,让学员能够处理来自不同数据源的数据。

2501_92227435

[Pro.Visual.Studio.LightSwitch.2011.Development].Tim.Leung.文字版.pdf

- **第17章:处理异常情况**:无论多么精心设计的应用程序,在实际运行过程中都可能会遇到问题。这部分讲解了如何有效地处理这些问题。

Dhoopu

《领域驱动设计C# 2008实现问题.设计.解决方案》.((美)Tim McCarthy) [PDF]__(0521).rar

《领域驱动设计C# 2008实现问题.设计.解决方案》这本书是美国作者Tim McCarthy的力作,专门探讨如何在C# 2008编程环境下运用领域驱动设计(Domain-Driven Design,

blog_zj

《领域驱动设计C# 2008实现问题.设计.解决方案》.((美)Tim McCarthy) [PDF]_《0528》.rar

《领域驱动设计C# 2008实现问题.设计.解决方案》这本书是Tim McCarthy的作品,专注于使用C#编程语言来实践领域驱动设计(Domain-Driven Design,简称DDD)。

blog_zj
评论 17
收藏 已收藏
分享
返回顶部
symbol_bc
C# 111,128 成员 642,536 内容