我目前有一个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
Run Code Online (Sandbox Code Playgroud)
Count 没有查询表达式语法,它只能附加在查询表达式的末尾,如:
var count = (from t in stringToCheckAsCharacterArray
where t == characterToCheckFor).Count();
Run Code Online (Sandbox Code Playgroud)
要么
var count = (from t in stringToCheckAsCharacterArray
where t == characterToCheckFor
select t).Count();
Run Code Online (Sandbox Code Playgroud)
我个人喜欢Method表达式,LINQ查询表达式也在Method表达式中编译.你自己的Count谓词代码更具可读性IMO.