【请教Tim】 Linq方面的问题
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,简称
C编程大师课程项目_由TimCorey主讲涵盖C语言从基础到高级的全面学习内容包括变量声明数据类型控制结构面向对象编程异常处理多线程编程LINQ查询异步编程.zip
在现代编程技术中,LINQ(语言集成查询)是.NET平台上用于查询数据的强大功能。课程中将展示如何在C#语言中使用LINQ技术进行数据查询和操作,让学员能够处理来自不同数据源的数据。
[Pro.Visual.Studio.LightSwitch.2011.Development].Tim.Leung.文字版.pdf
- **第17章:处理异常情况**:无论多么精心设计的应用程序,在实际运行过程中都可能会遇到问题。这部分讲解了如何有效地处理这些问题。
《领域驱动设计C# 2008实现问题.设计.解决方案》.((美)Tim McCarthy) [PDF]__(0521).rar
《领域驱动设计C# 2008实现问题.设计.解决方案》这本书是美国作者Tim McCarthy的力作,专门探讨如何在C# 2008编程环境下运用领域驱动设计(Domain-Driven Design,
《领域驱动设计C# 2008实现问题.设计.解决方案》.((美)Tim McCarthy) [PDF]_《0528》.rar
《领域驱动设计C# 2008实现问题.设计.解决方案》这本书是Tim McCarthy的作品,专注于使用C#编程语言来实践领域驱动设计(Domain-Driven Design,简称DDD)。


