LINQ 和字符串
LINQ 可用于查询和转换字符串和字符串集合。 它对文本文件中的半结构化数据尤其有用。 LINQ 查询可与传统的字符串函数和正则表达式结合使用。 例如,可以使用 Split 或 Split 方法来创建字符串数组,然后可以使用 LINQ 来查询或修改此数组。 可以在 LINQ 查询的 where 子句中使用 IsMatch 方法。 可以使用 LINQ 来查询或修改由正则表达式返回的 MatchCollection 结果。
还可以使用本节中介绍的技术将半结构化文本数据转换为 XML。 有关更多信息,请参见How to: Generate XML from CSV Files。
本节中的示例分为两种:
查询文本块
可以通过使用 Split 方法或 Split 方法将文本块拆分成可查询的较小字符串数组,来查询、分析和修改文本块。 可以将源文本拆分成词语、句子、段落、页或任何其他条件,然后根据查询的需要,执行其他拆分。
如何:对某个词在字符串中出现的次数进行计数 (LINQ)
演示如何使用 LINQ 对文本进行简单查询。如何:查询包含一组指定词语的句子 (LINQ)
演示如何按任意边界拆分文本文件,以及如何对每个部分执行查询。如何:查询字符串中的字符 (LINQ)
演示字符串是可查询类型。如何:将 LINQ 查询与正则表达式合并在一起
演示如何在 LINQ 查询中使用正则表达式来对筛选的查询结果执行复杂模式匹配。
查询文本格式的半结构化数据
许多不同类型的文本文件都包含一系列行,通常具有类似的格式,例如制表符分隔或逗号分隔文件或固定长度的行。 在将此类文本文件读取到内存中后,可以使用 LINQ 来查询和/或修改行。LINQ 查询还简化了组合多个源的数据的任务。
如何:查找两个列表之间的差集 (LINQ)
演示如何查找位于一个列表中但不在另一个列表中的所有字符串。如何:按任意词或字段对文本数据进行排序或筛选 (LINQ)
演示如何根据任意词语或字段排序文本行。如何:重新排列带分隔符的文件的字段 (LINQ)
演示如何重新排列 .csv 文件中的某一行中的字段。如何:组合和比较字符串集合 (LINQ)
演示如何以各种方式组合字符串列表。如何:从多个源填充对象集合
演示如何将多个文本文件用作数据源来创建对象集合。如何:联接不同文件的内容 (LINQ)
演示如何使用匹配键将两个列表中的字符串组合为单个字符串。如何:使用组将一个文件拆分成多个文件 (LINQ)
演示如何将单个文件用作数据源来创建新文件。如何:在 CSV 文本文件中计算列值 (LINQ)
演示如何对 .csv 文件中的文本数据执行数学运算。
请参见
任务
How to: Generate XML from CSV Files