繁体   English   中英

如何在C#中将文本文件读取到列表中

[英]How to read a text file into a List in C#

我有一个具有以下格式的文本文件:

1234

ABC123 1000 2000

第一个整数是权重,下一行具有三个值,即产品代码,重量和成本,并且该行可以重复任意次。 每个值之间都有一个空格。

我已经能够读取文本文件,使用first readline.split('')将第一行的第一个值存储到变量中,然后将后续的行存储到数组中,然后存储到列表中。

对我来说,这似乎是一种效率低下的方法,并且我一直在尝试寻找一种方法,可以从第二行中读取产品代码,权重和成本,并将其向下列出到列表中,而无需使用数组。 我的列表控件包含一个对象,该对象仅存储重量和成本,而不存储产品代码。

有谁知道如何读取文本文件,将文件中的某些值直接输入到列表控件中?

谢谢

你所做的是正确的。 没有通用的方法可以执行此操作,因为您要做的是为它指定算法,因此必须对其进行编码或参数化。

由于您的文本文件不像CSV文件那样结构化,因此这种手动解析可能是您最好的选择。

C#没有像Java这样的Scanner类,因此,尽管可以编写自己的 ,但BCL中不存在您想要的东西

其他答案是正确的-没有通用的解决方案。

如果您的文件比较小,则可以使用File.ReadAllLines(),它至少会消除大量的乱码,因为它将立即为您转换为字符串数组。

如果您不想解析文件中的字符串,并且不想为保留拆分字符串保留额外的内存,则可以使用二进制格式将信息存储在文件中。 然后,您可以将BinaryReader类与ReadInt32()ReadDouble()等方法一起使用。 它比按字符读取更有效。

但有一件事:二进制格式很难被人类读取。 在编辑器中编辑文件将很困难。 但是以编程方式-没有任何问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM