【发布时间】:2014-07-29 11:21:32
【问题描述】:
想问有没有办法把String转成arrayname?
示例:
我有 4 个数组: 姓名、年龄、性别、国籍
现在我得到了一个字符串,上面写着“国籍”,现在我想在我的代码中使用该字符串来访问国籍数组。或者,如果我将字符串更改为“年龄”,我想访问年龄数组......我希望它清楚我的意思。
我真的不知道如何做到这一点,希望您至少可以给我意见,在哪里可以找到有关该主题的一些信息。
希望有人可以帮助我!
来自德国的问候,
马文
编辑:
感谢所有答案.. 到目前为止,我的编程并不是很好,所以我不确定我是否理解所有内容。
我想如果我用字符串做所有事情或者在数组中有不同的类型并不重要,因为我可以转换它们吗?
到目前为止,我从未使用过列表。我想我的例子可能不是最好的,所以这是一个新的例子:
我得到了不同的数组(假设所有字符串): 我为桌面游戏制作了这个程序
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
程序随机选择一个单位,假设它选择迈克......不,它看起来他得到了什么能力助手......在这种情况下它的“领导者a”所以他应该遍历数组领导者中的所有条目并添加每个将“领导者”列入名单的英雄。 然后它会从这个列表中随机选择一个并为他做同样的事情......所以如果选择了 Pete,它会在数组 Points 中搜索所有得分低于 100 的人。
但我不想要 100 万个不同可能性的案例(有 8 种不同的属性,有时有 3 种作为良好匹配的限制(例如:领导者 a,友好,低于 5 分))
我想要类似的东西:
字符串 a = 其中 [0]; //一个字符串,包含在哪里搜索助手的信息
for(i=0;1<array.length;i++)
{
if (a[i]==abilityhelpers[0])
//then add name[i] to the list
}
我不想要这个问题的确切代码(我猜我不会得到它),我很想知道这是否可能,如果是的话,一些建议在哪里寻找或一些食物供我思考^^
【问题讨论】:
-
如果数组都包含相同的类型,您可以使用
Dictionary<string, List<SomeType>>,使用字符串键入数组。然后您可以像这样访问:myDictionary["age"] -
System.Array类型已经实现了多个接口,例如 IEnumerable、ICollection 和 IList。那么,为什么不像 Charleh 建议的那样把它做成一个列表或字典呢。
标签: c# arrays string transform