所以我知道查询符号
var word = from s in stringList
where s.Length == 3
select s;
相当于点符号
var word = stringList
.Where(s => s.Length == 3)
.Select(s => s);
但是如何将此点符号转换为查询符号?
var word = wordsList
.Single(p => p.Id == savedId);
我在Google上找不到太多资源。
答案 0 :(得分:6)
你做不到。查询语法中不能使用很多LINQ函数。充其量,您可以将两者结合起来并执行类似
的操作var word = (from p in wordsList
where p.Id == savedId
select p).Single()
但是在collection.Single(condition)
的简单情况下,“点符号”对我来说似乎更具可读性。
LINQ在MSDN上使用了关键字列表,您可以看到哪些功能已集成到该列表中的语言中。
答案 1 :(得分:3)
Single
在查询表示法中没有完全等效的内容。
你能做的最好的事情是将你的查询包装在括号中并自己调用。单独。
答案 2 :(得分:2)
你唯一能做的就是:
var word = (from w in wordsList
where w.Id == savedId
select w).Single();
但它不会完全相同。它将转化为
var word = wordsList
.Where(p => p.Id == savedId)
.Single();
答案 3 :(得分:0)
Single不是查询表示法的一部分。您可以将第一个示例更改为以下内容以实现您的目标:
var word = (from s in stringList where s.Length == 3 select s).Single();