LINQ查询语法(计数操作)

时间:2013-09-18 18:13:49

标签: c# linq

我目前有一个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

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();