我目前有一个LINQ语句,可以使用方法语法。很想知道等效查询语法是怎样的。尝试进行多次迭代,但查询语法无法成功
目前我有2个字符串 - 一个是句子,另一个是字母。我将它们转换为字符进行比较 - 所以我可以在完整字符串中找到字符的出现次数。
string sentenceToScan = "I Love StackOverflow!!!!";
string characterToScanFor = "e";
var stringToCheckAsCharacterArray = sentenceToScan.ToCharArray();
var characterToCheckFor = Char.Parse(characterToScanFor);
int numberOfOccurenes = stringToCheckAsCharacterArray.Count(n =>
n == characterToCheckFor);
Answer: 2
答案 0 :(得分:9)
Count
没有查询表达式语法,只能附加在查询表达式的末尾,如:
var count = (from t in stringToCheckAsCharacterArray
where t == characterToCheckFor).Count();
或
var count = (from t in stringToCheckAsCharacterArray
where t == characterToCheckFor
select t).Count();
我个人喜欢Method表达式,LINQ query expression compiles in Method expressions。你自己的带谓词Count
的代码更具可读性IMO。
答案 1 :(得分:1)
我的LINQ很生疏,但有点像:
stringToCheckAsCharacterArray.Where(n => n == characterToCheckFor).Count();