【发布时间】:2010-06-24 05:16:51
【问题描述】:
如何在c#中将文件复制到字典中
【问题讨论】:
-
结果应该是怎样的?
Dictionary是值对的集合,您需要(lineN number, text)集合还是其他什么? -
14 个问题,0 个接受,再见。
标签: c#
如何在c#中将文件复制到字典中
【问题讨论】:
Dictionary 是值对的集合,您需要 (lineN number, text) 集合还是其他什么?
标签: c#
嗯,你还没有指定文件格式。如果它是“键值”,那么您可以执行以下操作:
string[] lines = File.ReadAllLines("file.txt");
var dictionary = lines.Select(line => line.Split(' '))
.ToDictionary(bits => bits[0],
bits => bits[1]);
请注意,我实际上并不喜欢一次读取所有行 - 如果文件很小,那很好,但如果文件很大,那就不好了。编写一个一次读取一行的方法相当简单:
public static IEnumerable<string> EnumerableLines(string file)
{
using (TextReader reader = File.OpenText(file))
{
string line;
while ((line = reader.ReadLine()) != null)
{
yield return line;
}
}
}
您可以针对文本编码等进行调整。
现在查询变为:
var dictionary = EnumerableLines("file.txt")
.Select(line => line.Split(' '))
.ToDictionary(bits => bits[0],
bits => bits[1]);
【讨论】: