c# - LINQ查询语法(计数操作)

标签 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

最佳答案

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。

关于c# - LINQ查询语法(计数操作),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18879399/

相关文章:

c# - 对象类原始类型堆栈和堆

c# - 使用其关系中的属性为子类建模的正确方法

c# - Linq to Xml,是否可以改进此查询?

c# - 使用 Linq 在 JArray 中使用 JSON.NET 多个 orderby

c# - 对 DAL 对象的 TPL 异步调用打开 DataReader 错误

c# - 使用 linq 从链接到另一个表的表中获取单个记录

c# - 对如何设置我的类(class)感到困惑,不想公开逗号分隔列表,只公开一个集合

c# - 无法在 VSTO 加载项中的 WPF 窗口上键入

c# - 不使用内置函数计算单词长度

c# - 在 C# 中编写 LINQ 以过滤通用 PointF 列表中的最大 x/y