c# - 从具有特定模式的文本文件中读取文本

标签 c#

您好,我有一个要求,我需要从文本文件中读取内容。示例文本内容如下。

Name=Check_Amt
Public=Yes
DateName=pp
Name=DBO

我需要阅读文本并只提取 Name='What ever text' 之后的值。

所以我期望输出为 Check_Amt, DBO

我需要在 C# 中执行此操作

最佳答案

查询数据(例如文件行)时,Linq 通常是一个方便的工具;如果文件中有行

name=value

格式,可以这样查询

  1. 读取 文件行
  2. 将每一行拆分name, value
  3. 按名称过滤
  4. 从每对中提取
  5. 将值具体化到集合中

代码:

using System.Linq;

...

// string[] {"Check_Amt", "DBO"}
var values = File 
  .ReadLines(@"c:\MyFile.txt")
  .Select(line => line.Split(new char[] { '=' }, 2)) // split into name, value pairs
  .Where(items => items.Length == 2)                 // to be on the safe side
  .Where(items => items[0] == "Name")                // name == "Name" only
  .Select(items => items[1])                         // value from name=value
  .ToArray();                                        // let's have an array

最后,如果你想要逗号分隔的stringJoin values:

// "Check_Amt,DBO"
string result = string.Join(",", values);

关于c# - 从具有特定模式的文本文件中读取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58099339/

相关文章:

C# PropertyInfo(通用)

c# - Entity Framework 中的多个 where 语句

c# - 缺少 System.ServiceModel

javascript - 将参数从链接按钮传递给 JavaScript

c# - 在 RestSharp 中复制此 PUT 请求

C# xml 阅读器,相同的元素名称

c# - 具有本地化数据的 ASP.NET MVC GET 表单

c# - 我的 StreamReader 只从我的 4 行文本文件中读取第二行和第四行

c# - WPF/XAML 看起来不像系统主题

c# - 安装服务到服务器 2012