使用字符串来决定要使用哪个数组(c#)
本文关键字:数组 字符串 决定 | 更新日期: 2023-09-27 18:15:28
我想问是否有办法将String转换为arrayname?
示例:
我得到了大约4个数组:姓名、年龄、性别、国籍
现在我得到了一个字符串,上面写着"nationality",现在我想在代码中使用这个字符串来访问nationality数组。或者,如果我将字符串更改为"age",我想访问age数组。。。我希望它清楚我的意思。
我真的不知道如何做到这一点,希望你至少能给我一些关于这个主题的信息。
希望有人能帮助我!
来自德国的问候,
Marvin
编辑:
谢谢你的回答。。到目前为止,我在编程方面还不是很好,所以我不确定我是否理解得很好。
我想我是用String做所有的事情,还是在数组中有不同的类型,都无关紧要,因为我可以转换它们,或者?
到目前为止,我从未使用过Lists。我想我的考试可能不是最好的,所以这里有一个新的:
我得到了不同的数组(比如说所有的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
程序随机选择一个单元,比方说它选择了迈克。。。不,看他得到了什么Abilityhelpers。。。在这种情况下,它是"首领a",所以他应该查看阵列首领中的所有条目,并将每个获得"首领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
}
我不想要这个问题的确切代码(我想我不会得到它(,我很想知道这是否可能,如果是的话,一些建议在哪里寻找,或者一些食物来表达我的想法^^
您可以使用Generic Dictionary,它将键作为字符串,将值作为字符串array / List<string>
Dictionary<string, string[]> dictionary = Dictionary<string, string[]>();
或
Dictionary<string, List<string>> dictionary = Dictionary<string, List<string>>();
为什么不将数组存储在字典中。类似的东西:
Dictionary<string, Array> arrays = new Dictionary<string,Array>();
string key="key";
Array ages = arrays[key];
如果您的数组属于不同类型(因此您不能使用Dictionary<String, T>
(,我建议使用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));
// ...
从表格中获取数据:
int[] ages = table
.AsEnumerable()
.Select(row => row["Age"])
.ToArray();