哪种是在C#中保存多维字符串数组的最优雅方法?

时间:2012-01-04 11:21:57

标签: c# multidimensional-array arraylist

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

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

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

4 个答案:

答案 0 :(得分:4)

您是否考虑过使用Dictionary

e.g。

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

答案 1 :(得分:4)

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

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

答案 2 :(得分:1)

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

答案 3 :(得分:1)

您尚未详细说明您希望存储的列表的意图或用法。万一,这是一个查找表类型的数据,你希望查找的东西,你可以看看字典。有关词典的详细信息,请参阅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"];

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