我使用StreamWriter
和在新类中创建了一个文本文件WriteLine
.我构建的每一行都是这样的:
w.WriteLine("key2" + "=" + value2); w.WriteLine("key1" + "=" + value1);
然后在form1 Load事件中:
string[] lines = File.ReadAllLines(FileName);
现在我在索引0"key2 = value2"和索引1中的行"key1 = value1"现在我想将每个值分配给另一个字符串,例如:
string1赋值key1的key1和string2赋值key2的key2
有时可以更改行的顺序,文本文件中的第一行可以是value2和key2或value1和key1,但在所有情况下,我希望为字符串value1分配key1的value1,将字符串value2赋值为value2 key2
这次我手动构建了文本文件,没有keyvaluepair或类似的东西但是当读回来时我想读取左边的含义作为键,并且在=作为值之后.
但如果我在做:
string[] lines = File.ReadAllLines(Authentication.AuthenticationFileName); for (int i = 0; i < lines.Length; i++) { }
我怎么知道总是按照我想要的顺序分配字符串无论文本文件中的行是否写入顺序?
我想知道如果我构建像键和值的文本文件它是如何工作的: key = value
您可以构建一个按名称键入的值字典,以便更轻松地访问它们:
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"];