我'我的文件有问题.c#中的WriteAllLines

本文关键字:有问题 中的 WriteAllLines 文件 我的 | 更新日期: 2023-09-27 18:14:46

*我知道我需要一个内容数组字符串,但我有困难实现它。

Dictionary<string, string> dictionary = new Dictionary<string, string>();
string[] array = File.WriteAllLines("settings.cfg");
for (int i = 0; i < array.Length; i++)
{
    string text = array[i];
    if (!text.StartsWith("/") && text.Contains(":"))
    {
        string[] array2 = text.Split(new char[]
        {
            ':'
        });
        dictionary.Add(array2[0], array2[1]);
    }
}

*您将如何实现string[]内容?

我'我的文件有问题.c#中的WriteAllLines

在执行这些任务时,请尝试使用Linq。你必须

  1. 读取文件
  2. 过滤掉
  3. 每一行表示为键和值(在您的情况下只是分割)
  4. 结果物化为字典

像这样:

   var dictionary = File
     .ReadLines("settings.cfg")
     .Where(line => !line.StartWith("/") && line.Contains(":"))
     .Select(line => line.Split(new char[] {':'}))
     .ToDictionary(items => items[0], items => items[1]);

如果您想要Dictionary<string, string[]>作为结果

"您将如何实现string[]内容?"

你所要做的就是修改最后一行:

   var dictionary = File
     .ReadLines("settings.cfg")
     .Where(line => !line.StartWith("/") && line.Contains(":"))
     .Select(line => line.Split(new char[] {':'}))
     .ToDictionary(items => items[0], items => items.Skip(1).ToArray());

Edit:如果您想将现有的集合保存到一个文件中,通过File.WriteAllLines正确的语法是

  string[] SaveStrings = ...
  File.WriteAllLines("settings.cfg", SaveStrings);