以下代码的LINQ查询语法等效项是什么
int[] numbers = { 3, 4, 5, 6, 7, 8 };
int count = numbers.Count(x => x > 5 == true);
字符串
我试过这个,但它没有编译:
var c = from number in numbers where number > 5 select numbers.Count;
型
这一个也没有编译:
var c = from number in numbers where number > 5 select new {numbers.Count};
型
5条答案
按热度按时间11dmarpk1#
你很接近了,只需要像这样把LINQ表达式 Package 在括号中:
字符串
gpfsuwkq2#
带有
from
和in
的LINQ样式被称为“查询语法”:字符串
它通常包含比“方法语法”更少的lambda表达式:
型
你也可以把它们混合起来。例如,这为所有行创建一个组,并计算行数。需要像
FirstOrDefault()
这样的方法调用来具体化值:型
bakd9h0s3#
你所谈论的是查询语法,并不是所有的LINQ方法在查询语法上都有等价的。最简洁的表达式是
numbers.Count(x => x > 5)
。从docs:某些查询操作,如
Count
或Max
,没有等效的查询表达式子句,因此必须表示为方法调用。方法语法可以以各种方式与查询语法组合。mfuanj7w4#
字符串
ht4b089n5#
int[] numbers = { 3,4,5,6,7,8 }; var count = numbers.Count(x => x > 5);