从文本文档 C# 添加到字典
Adding to the dictionary from a text document C#
我需要通过=逐行读取文本文档,并将其添加到字典中。你能帮帮我吗?
using (StreamReader sr = new StreamReader("slovardata.txt"))
{
string _line;
while ((_line = sr.ReadLine()) != null)
{
string[] keyvalue = _line.Split('=');
if (keyvalue.Length == 2)
{
slovarik.Add(keyvalue[0], keyvalue[1]);
}
}
}
对于简单的文本文件读取操作,你可以使用这样的东西:
注意: 确保您的密钥是唯一的,否则您将得到 -
System.ArgumentException: An item with the same key has already been
added.
string[] FileContents = File.ReadAllLines(@"c:\slovardata.txt");
Dictionary<string, string> dict = new Dictionary<string, string>();
foreach (string line in FileContents)
{
var keyvalue = Regex.Match(line, @"(.*)=(.*)");
dict.Add(keyvalue.Groups[1].Value, keyvalue.Groups[2].Value);
}
foreach (var item in dict)
{
Console.WriteLine("Key : " + item.Key + "\tValue : " + item.Value);
}
您可以使用 File.ReadAllLines 读取文件的所有行,并将每一行拆分为键和值后将其添加到字典中,如下面的代码:
注意:它可能会忽略某些行而不抛出任何异常,并且可能会抛出参数异常“已添加具有相同键的项目”
var lines = System.IO.File.ReadAllLines("slovardata.txt");
lines.Select(line=>line.Split('='))
.Where(line=>line.Length ==2)
.ToList()
.ForEach(line=> slovarik.Add(line[0],line[1]));
顺便说一下,.ForEach
方法产生了很多垃圾(在大型列表中),如果没有重复键,您可以使用以下方法:
var slovarik = lines.Select(line=>line.Split('='))
.Where(line=>line.Length ==2)
.ToDictionary(line[0],line[1]);
我需要通过=逐行读取文本文档,并将其添加到字典中。你能帮帮我吗?
using (StreamReader sr = new StreamReader("slovardata.txt"))
{
string _line;
while ((_line = sr.ReadLine()) != null)
{
string[] keyvalue = _line.Split('=');
if (keyvalue.Length == 2)
{
slovarik.Add(keyvalue[0], keyvalue[1]);
}
}
}
对于简单的文本文件读取操作,你可以使用这样的东西:
注意: 确保您的密钥是唯一的,否则您将得到 -
System.ArgumentException: An item with the same key has already been added.
string[] FileContents = File.ReadAllLines(@"c:\slovardata.txt");
Dictionary<string, string> dict = new Dictionary<string, string>();
foreach (string line in FileContents)
{
var keyvalue = Regex.Match(line, @"(.*)=(.*)");
dict.Add(keyvalue.Groups[1].Value, keyvalue.Groups[2].Value);
}
foreach (var item in dict)
{
Console.WriteLine("Key : " + item.Key + "\tValue : " + item.Value);
}
您可以使用 File.ReadAllLines 读取文件的所有行,并将每一行拆分为键和值后将其添加到字典中,如下面的代码:
注意:它可能会忽略某些行而不抛出任何异常,并且可能会抛出参数异常“已添加具有相同键的项目”
var lines = System.IO.File.ReadAllLines("slovardata.txt");
lines.Select(line=>line.Split('='))
.Where(line=>line.Length ==2)
.ToList()
.ForEach(line=> slovarik.Add(line[0],line[1]));
顺便说一下,.ForEach
方法产生了很多垃圾(在大型列表中),如果没有重复键,您可以使用以下方法:
var slovarik = lines.Select(line=>line.Split('='))
.Where(line=>line.Length ==2)
.ToDictionary(line[0],line[1]);