1

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

2 回答 2

10

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 查询表达式也编译在 Method 表达式中。您自己的Countwith 谓词代码在 IMO 中更具可读性。

于 2013-09-18T18:16:53.343 回答
1

我的 LINQ 生锈了,但类似于:

stringToCheckAsCharacterArray.Where(n => n == characterToCheckFor).Count();
于 2013-09-18T18:16:38.297 回答