如何读取文本文件键值并将值分配给字符串 var?

Posted

技术标签:

【中文标题】如何读取文本文件键值并将值分配给字符串 var?【英文标题】:How can i read a text file key value and assign the values to strings vars? 【发布时间】:2016-03-14 13:54:56 【问题描述】:

我使用StreamWriterWriteLine 在一个新类中创建了一个文本文件。 每一行我都是这样构建的:

w.WriteLine("key2" + "=" + value2);
w.WriteLine("key1" + "=" + value1);

然后在form1中加载事件:

string[] lines = File.ReadAllLines(FileName);

现在我在索引 0 “key2 = value2”和索引 1 “key1 = value1”中的行 现在我想将每个值的行分配给另一个字符串,例如:

字符串 value1 被赋值为 key1 的 value1 和字符串 value2 被赋值为 key2 的 value2

有时可以更改行的顺序,文本文件中的第一行可以是 value2 和 key2 或 value1 和 key1,但在所有情况下,我希望字符串 value1 被分配 key1 的 value1 和字符串 value2分配了 key2 的 value2

这一次我手动构建了文本文件,没有 keyvaluepair 或类似的东西,但是当我读回它时,我想把左边的意思读为键,在 = 之后读为值。

但如果我这样做:

string[] lines = File.ReadAllLines(Authentication.AuthenticationFileName);
for (int i = 0; i < lines.Length; i++)



无论行在文本文件中的写入顺序如何,我怎么知道始终按照我想要的顺序分配字符串?

我想知道如果我构建像键和值这样的文本文件,它会如何工作:key = value

【问题讨论】:

你是指字典吗?如果是这样,您可以逐行读取并使用 split 方法通过 '=' 拆分键和值 您可以创建一个字典来存储键和值对。现在通过 Dictionary 读取属性。对于前public string Key1 get return _dict["Key1"]; 【参考方案1】:

您可以构建一个按名称键入的值字典,以便更轻松地访问它们:

string[] lines = File.ReadAllLines(Authentication.AuthenticationFileName);

// Get the position of the = sign within each line
var pairs = lines.Select(l => new  Line = l, Pos = l.IndexOf("=") );

// Build a dictionary of key/value pairs by splitting the string at the = sign
var dictionary = pairs.ToDictionary(p => p.Line.Substring(0, p.Pos), p => p.Line.Substring(p.Pos + 1));

// Now you can retrieve values by key:
var value1 = dictionary["key1"];

【讨论】:

字典很好用。我刚刚在子字符串的末尾添加了 Trim :)p.Line.Substring(0, p.Pos).Trim() 以避免空格【参考方案2】:

使用Split 方法构建字典的另一种方法,而不是对字符串中的字符进行索引:

//Load lines from file

var dict = lines.Select(line => line.Split('=')).ToDictionary(split => split[0], split => split[1]);

var val1 = dict["key1"];

【讨论】:

【参考方案3】:

您可以使用Split 方法从string 获取右侧值

string[] lines = File.ReadAllLines(Authentication.AuthenticationFileName);
for (int i = 0; i < lines.Length; i++)

  string val = lines[i].Split('=')[1].Trim();

【讨论】:

以上是关于如何读取文本文件键值并将值分配给字符串 var?的主要内容,如果未能解决你的问题,请参考以下文章

如何将文本文件中的值分配给python函数中的数组并将其用作全局?

如何读取 csv 文件并将值分配给 spark scala 中的变量

从文本文件中读取数据并将其分配给数据框的最快方法是啥?

VB中读入文件,如何获得文本的行数

打开多行文本文件并仅读取其中的特定行。并将值发送到文本框

C - 读取文件并将文本放入具有动态内存分配的字符指针