使用String来决定使用哪个数组(c#)

时间:2014-07-29 11:21:33

标签: c# arrays string transform

我想问一下是否有办法将String转换为arrayname?

示例:

我有4个阵列: 姓名,年龄,性别,国籍

现在我得到一个字符串,上面写着"国籍"现在我想在我的代码中,我可以使用该字符串来访问国籍数组。或者,如果我将字符串更改为" age"我想访问年龄数组...我希望它清楚我的意思。

我真的不知道如何做到这一点,并希望你能至少给我输入在哪里找到这个主题的一些信息。

希望有人可以帮助我!

来自德国的问候,

马文

修改

感谢所有的答案..我在编程方面做得不好,所以我不确定我是否理解一切正确。

我想如果我用String做所有事情或者数组中有不同的类型并不重要,因为我可以转换它们或者?

到目前为止,我从未与列表合作过。我想我的考试可能不是最好的,所以这里有一个新的:

我有不同的数组(让我们说所有字符串): 我为桌面游戏制作了这个程序

name              //Name of a hero
points            // Costs for using it
leader            //kinda the fraction
character         //an attribut units got
abilityhelpers    //what does a hero need to be helpfull for this unit
where             //where to serach

所以我有不同的单位:

pete
10
leader a
friendly
less 100 //so every hero that costs less then 100 points helps him
points

mike
110
leader b
smart
leader a //so he is good with heros from leader a
leader

该程序选择随机一个单位,让我们说它选择迈克......不管它看起来他有什么能力帮助......在这种情况下它的领导者是"所以他应该遍历数组领袖中的所有条目,并添加所有得到的领导者#34;到列表。 然后它会选择这个列表中随机的一个并为他做同样的事情......所以如果选择了Pete,它会在数组中搜索每个得分少于100分的人。

但我不想要100万像素,如果不同的posibillities案例(有8个不同的属性,有时有3个作为良好匹配的限制(如:领导者a,友好,分数少于5))< / p>

我希望有类似的东西:

字符串a = where [0]; //一个字符串,其中包含搜索帮助程序的信息

for(i=0;1<array.length;i++)
{
if (a[i]==abilityhelpers[0])
    //then add name[i] to the list
}

我不想要这个问题的确切代码(并猜测我不会得到它),我很想知道这是否可行,如果是的话,建议去哪里寻找食物我的想法^^

3 个答案:

答案 0 :(得分:3)

您可以使用Generic Dictionary将密钥作为字符串,将值作为字符串array / List<string>

Dictionary<string, string[]> dictionary = Dictionary<string, string[]>();

Dictionary<string, List<string>> dictionary = Dictionary<string, List<string>>();

答案 1 :(得分:1)

为什么不将数组存储在字典中。这样的事情:

Dictionary<string, Array> arrays = new Dictionary<string,Array>();

string key="key";

Array ages = arrays[key];

答案 2 :(得分:0)

如果您的阵列属于 不同类型 (因此无法使用 Dictionary<String, T>),我建议您利用{ {1}}:

DataTable

从表中获取数据:

  DataTable table = new DataTable();

  // Age is integer: 34, 81, 19...  
  table.Columns.Add("Age", typeof(int));
  // Nationality is String: "English", "Dutch"... 
  table.Columns.Add("Nationality", typeof(String));
  // Gender is Char: 'M' or 'F' 
  table.Columns.Add("Gender", typeof(Char));
  // ...