【问题标题】:How do you save a non-generic sorted list to a file so that you can load that sorted list from the file?如何将非通用排序列表保存到文件中,以便可以从文件中加载该排序列表?
【发布时间】:2021-03-07 14:09:33
【问题描述】:

我是初学者,我希望能够以编程方式从文件中存储和加载选项,以便玩家可以随时随地自定义选项。

我尝试了以下方法:我尝试编写排序列表本身并尝试将其转换为字符串,但这些都不起作用。我用谷歌搜索机搜索过,我也在 Stack Overflow 上搜索过,但没有任何用处。

我们将不胜感激。

【问题讨论】:

  • 快速 search 在前 3 名中显示了指向 Saving from List<T> to txt 的链接
  • 这是一个通用列表,也只是一个列表,而不是一个 SortedList,因为它没有键和值。我要求一个非通用的 SortedList 以便我可以存储许多不同的值类型,这样我就可以轻松地使用某种设置菜单来更改我的项目中的某些内容
  • SortedList 本身完全是另一种变量类型,您可以执行以下操作:SortedList sl = new SortedList();。还有一个通用变体,您也可以在其中使用 。我知道为什么也存在泛型和非泛型。
  • List 有一个写所有的功能。就在列表对象 type.w 之后,您会看到。

标签: c# list file


【解决方案1】:

怎么样?

using System.IO;

public static string FromListToString(SortedList list){
    string text = "";
    for (int i = 0; i < list.Count; i++){
        text += list.getKey(i) + "\t" list.getValue(i) + "\n";
    }
    return text;
}

public static SortedList FromStringToList(string str){
    string[] strArr = str.Split('\n');
    SortedList list = new SortedList();
    foreach (string i in strArr){
        string[] splittedStr = i.Split('\t');
        list.Add(splittedStr[0], splittedStr[1]);
    }
    return list;
}

public static void ToFile(string path, SortedList list){
    (new StreamWriter(path)).WriteLine(FromListToString(list));
}

public static SortedList FromFile(string path){
    return FromStringToList((new StreamReader(path)).Read());
}

【讨论】:

  • 在我的帖子中,我指的是 SortedList,就像在列表中一样,但具有值和键类型,也可以是非泛型的
  • 这可能适用于具有字符串值类型的 SortedList,但我的问题是我也想使用字符串和数字(​​双精度)。不过我找到了一个解决方案,就是这样格式化:类型、键、值;因为我的钥匙总是一个字符串。然后在加载时,您可以使用子字符串和 if 条件来检查值类型以正确加载值。
猜你喜欢
  • 2015-12-24
  • 1970-01-01
  • 2013-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多