LINQ 和字符串 (C#)
LINQ 可用于查询和转换字符串和字符串集合。 这在处理文本文件中的半结构化数据时尤其有用。 LINQ 查询可以与传统的字符串函数和正则表达式合并。 例如,可以使用 String.Split 或 Regex.Split 方法来创建可稍后使用 LINQ 查询或修改的字符串数组。 可以使用 LINQ 查询的 where
子句中的 Regex.IsMatch 方法。 并且可以使用 LINQ 查询或修改正则表达式返回的 MatchCollection 结果。
还可以使用本节介绍的技术将半结构化的文本数据转换为 XML。 有关详细信息,请参阅如何从 CSV 文件生成 XML。
本节中的示例分为两类:
查询文本块
可以使用 String.Split 方法或 Regex.Split 方法将文本块拆分为可查询的较小字符串数组,从而对其进行查询、分析和修改。 可以先将源文本拆分为词语、句、段落、页或任何其他条件,然后根据查询的需要执行其他拆分。
如何对某个词在字符串中出现的次数进行计数 (LINQ) (C#)
演示如何使用 LINQ 进行简单文本查询。-
演示如何在任意边界上拆分文本文件以及如何针对每个部分执行查询。
-
演示字符串是可查询类型。
-
演示如何在 LINQ 查询中使用正则表达式,以便对筛选的查询结果进行复杂的模式匹配。
查询文本格式的半结构化数据
许多不同类型的文本文件都包含一系列行,通常具有类似的格式设置,例如制表符分隔或逗号分隔的文件或固定长度的行。 将此类文本文件读入内存后,可以使用 LINQ 来查询和/或修改其中的行。 LINQ 查询还简化了合并来自多个源的数据的任务。
-
演示如何查找出现在一个列表中、但没有出现在另一个列表中的所有字符串。
如何按任意词或字段对文本数据进行排序或筛选 (LINQ) (C#)
演示如何基于任意词或字段对文本行进行排序。
-
演示如何对 .csv 文件的某行中的字段进行重新排序。
-
演示如何通过各种方式合并字符串列表。
-
演示如何将多个文本文件作为数据源来创建对象集合。
-
演示如何使用匹配键将两个列表中的字符串合并成单个字符串。
-
演示如何通过将单个文件用作数据源来创建新文件。
-
演示如何在 .csv 文件中对文本数据执行数学计算。