我有一个文本文件,其中包含一个按字母顺序排列的变量列表,变量编号旁边的变量编号格式如下:
aabcdef 208
abcdefghijk 1191
bcdefga 7
cdefgab 12
defgab 100
efgabcd 999
fgabc 86
gabcdef 9
h 11
ijk 80
...
...
我想将每个文本作为一个字符串读取并保留它的指定 id# 类似于读取“aabcdef”并将其存储到一个数组中的 208 点。
我遇到的两个问题是:
我从来没有在 C# 中读取过文件,有没有办法读取,比如从 行首到空格作为字符串?然后下一个字符串为 一个 int 直到行尾?
鉴于这些文件的性质和大小,我不知道每个文件的最高 ID 值(并非所有数字都被使用,所以一些 文件可以包含 3000 这样的数字,但实际上只列出 200 变量)那么我怎样才能灵活地存储这些 当我不知道数组/列表/堆栈/等有多大时的变量。 需要。
最佳答案
基本上您需要一个 Dictionary
而不是数组或列表。您可以使用 File.ReadLines
方法读取所有行,然后根据空格和\t(制表符)拆分每一行,如下所示:
var values = File.ReadLines("path")
.Select(line => line.Split(new [] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries))
.ToDictionary(parts => int.Parse(parts[1]), parts => parts[0]);
然后 values[208]
会给你 aabcdef
。它看起来像一个数组,不是吗 :)
还要确保没有重复的数字,因为 Dictionary
键应该是唯一的,否则会出现异常。
关于c# - 在文本文件中读取更多 'intelligently',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23899358/