访问文本文件内容的最佳C#方法

时间:2018-06-24 03:33:01

标签: c# string file dictionary file-read

我开始从VB6转到C#。尽管我是一位经验丰富的程序员(40多年),但经常会知道较新的结构是有很大帮助的,而不是认真地逐行翻译。 Out公司通过包含行列表的文本文件接收订单。

XXX=param1;param2
YYY=param1;param2

在VB6中,我创建了一个非常复杂的字符串类,用于搜索,提取,更新,添加,删除和插入这些行。

C#是否提供了已经存在的构造,或者我需要编写自己的构造。字典结构看起来不错,但我担心值的数量以及是否有一种方法可以一次性导入文件而不必逐行读取文件。

2 个答案:

答案 0 :(得分:1)

不,C#不提供这种功能,您需要编写自己的文件解析器(可能类似于VB6中已经存在的文件解析器)。

我认为字典不会在这里为您提供帮助(除非我不了解您的文件结构),字典适用于键值对(因此每个条目有2个值),但是您似乎拥有简单的参数(即您的输入看起来不像键值对)。

仅使用以下方法创建1-2个类来进行解析会容易得多:

  • File.ReadAllLines读取文本文件并获取行数组。
  • line.Split(';')获取每行的参数(假设您为每行设置参数)。

答案 1 :(得分:1)

您没有提到C#版本,在此answer中没有提到关于File.ReadLines的@jonskeet,

  

如果您使用的是.NET 4,只需使用File.ReadLines即可完成所有操作   为了你。我怀疑它与您的相同,除了它也可能会使用   FileOptions.SequentialScan和更大的缓冲区(128个很小)。

根据以上答案,我搜索到有将文件结果转换为列表的选项,并且得到了answer,因此转换后您也使用linq。

List<string> allLinesText = File.ReadAllLines(fileName).ToList()