【问题标题】:Which is the most elegant way to save a multi dimensional string array in C#?在 C# 中保存多维字符串数组的最优雅方法是什么?
【发布时间】:2012-02-02 07:16:48
【问题描述】:

我正在寻找一种更好或最优雅的方式来保存多维字符串数组。 这是场景: 而不是在 sql 表中保存带有语言的列表,我想将它保存在数组/ararylist/object 中,以便我可以更快地访问它。 它将包含:

{
{"en-US", "English"},
{"ro-RO", "Romanian"},
{"pt-PT", "Portuguese"}
}

此列表可能包含许多其他内容。 请原谅,但我在 Stack 上还没有找到任何解决方案。

【问题讨论】:

  • 您打算通过什么方式访问它?只需通过代码或更复杂的方式选择文化名称?
  • 保存在哪里?到磁盘?只是记住它?

标签: c# multidimensional-array arraylist


【解决方案1】:

您是否考虑过使用Dictionary

例如

Dictionary<string, string> english = new Dictionary<string, string>()
{
  {"en-US", "English"},
  {"ro-RO", "Romanian"},
  {"pt-PT", "Portuguese"}
}

【讨论】:

    【解决方案2】:

    您可以使用Dictionary 类。这是一个例子

    Dictionary<String, String> lDict = new Dictionary<String, String>();
    lDict.Add("en-US", "English");
    ...
    lDict["en-US"]; // == "English"
    

    【讨论】:

      【解决方案3】:

      如果您想在运行时加载它并将其保存在单独的文件中,我建议查看序列化

      【讨论】:

        【解决方案4】:

        您没有详细说明您希望存储的列表的意图或用途。如果这是一种查找表类型的数据,并且您希望查找某些内容,则可以查看 Dictionary。字典详情请参考this MSDN article

        在您的情况下,考虑到您有一对字符串,并且您想使用该对的第一个元素获取该对中的第二个元素,您可以拥有这样的字典:

        Dictionary<string, String> myDict = new Dictionary<string, String>();
        //add the elements or members
        myDict.Add("en-US", "English");
        //TO DO: Add the rest of the items
        
        //Get the second element for a member
        string Lang = myDict["en-US"];
        

        但是如果这需要持久化,您还必须管理序列化和反序列化。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-09-26
          • 2019-07-30
          • 2013-04-06
          • 1970-01-01
          • 1970-01-01
          • 2018-11-19
          • 1970-01-01
          相关资源
          最近更新 更多