如何在Linq中将基于方法的查询转换为查询表达式
我有以下代码,希望将其转换为查询表达式。(示例取自msdn linq 101样品)如何在Linq中将基于方法的查询转换为查询表达式,linq,Linq,我有以下代码,希望将其转换为查询表达式。(示例取自msdn linq 101样品) string[]位={“零”、“一”、“二”、“三”、“四”、“五”、“六”、“七”、“八”、“九”}; var shortDigits=数字。其中((数字,索引)=>数字。长度
string[]位={“零”、“一”、“二”、“三”、“四”、“五”、“六”、“七”、“八”、“九”};
var shortDigits=数字。其中((数字,索引)=>数字。长度<索引);
foreach(短数字形式的变量d)
{
WriteLine(“单词{0}比它的值短。”,d);
}
请帮助我。您不能这样做,因为查询语法不支持带有索引参数的
Where
运算符。见以下备注部分:
在查询表达式语法中,where(visualc#)或where(visualc
Basic)子句转换为对
其中(IEnumerable,Func
)
如果需要查询语法中的索引,可以在查询之外定义它:
int index = 0;
var shortDigits = from d in digits
where d.Length < index++
select d;
int索引=0;
var shortDigits=以数字形式从d开始
其中d.长度<索引++
选择d;
@user3829651使用Where调用Sum或Max是什么意思?Where和Sum是不同的方法这意味着没有办法。。那么为什么我们同时调用查询表达式和基于方法的查询呢equal@user3829651我们不认为他们是平等的。查询语法是SyntaxMethod的一小部分谢谢@Sergey的回复。
int index = 0;
var shortDigits = from d in digits
where d.Length < index++
select d;