tso*_*tan 4 c# sql linq lambda
当有两列同时选择时,如何将其转换为Lambda表达式?
LINQ
var lq=(from a in tbl
group a by 0 into b
select new { intYear = b.Min(p => p.intYear), tintMonth = b.Max(p => p.tintMonth) }
).SingleOrDefault();
Run Code Online (Sandbox Code Playgroud)
T-SQL
SELECT MIN(intYear), MAX(tintMonth)
FROM tbl
Run Code Online (Sandbox Code Playgroud)
拉姆巴表达
tbl.Select(x => x.intYear).Min(); //Can't figure how to select if 2 columns
Run Code Online (Sandbox Code Playgroud)
如果您打算返回"行"而不是两个值,则可以像在第一个LINQ表达式中一样将所有行组合在一起:
tbl.GroupBy(t => 1)
.Select(g => new { intYear = g.Min(p => p.intYear), tintMonth = g.Max(p => p.tintMonth) })
Run Code Online (Sandbox Code Playgroud)
注意,我假设这是针对LINQ-to-SQL的.对于普通旧对象,这很可能导致整个集合中的三次迭代.一做分组,一个用于Min()和一个Max().对于大型系列,你可以更好地循环一次,并且foreach在整个系列中采用一种单一的方式.
| 归档时间: |
|
| 查看次数: |
6583 次 |
| 最近记录: |