在Lua和Javascript中,您可以将不同的数据类型放在数组中。 BOOLS;字符串; Ints等。但我看到在C#中,数组看起来像
string[] keysPressed ={};
那么......我不能在数组中放入不同的数据类型吗?是的,我知道很明显你不能在那条线上。但有没有其他方式我可以创建一个支持不同的东西的数组?
答案 0 :(得分:5)
您正在寻找一个数组或动态集合。 更多MSDN Dynamic data type
动态可以像我们在lua和JS中那样使用。这些是动态类型语言。
dynamic d1 = 7;
dynamic d2 = "a string";
dynamic d3 = System.DateTime.Today;
dynamic d4 = System.Diagnostics.Process.GetProcesses();
以下是在数组中使用它们的示例
dynamic[] myObjects = new dynamic[3];
myObjects[0] = 1;
myObjects[1] = "2";
myObjects[3] = "another string";
答案 1 :(得分:0)
您还可以使用object
数组。
object[] keysPressed ={};
答案 2 :(得分:0)
您可以使用object[]
或object
的任何其他集合:
List<object> objs = new List<object>();
objs.Add(1);
objs.Add("Str");
objs.Add(DateTime.Now);
请记住,此集合中的每个项目都是object
,您需要投射它们才能使用:
objs[1].Trim() // won't compile. object has no Trim method
((string)objs[1]).Trim() // OK
((string)objs[0]).Trim() // runtime exception, unable to cast
您需要记住的另一件重要事情是,向此集合添加基元会产生boxing。
答案 3 :(得分:0)
答案 4 :(得分:0)
为什么不使用动态功能。
List<dynamic> dynamicList = new List<dynamic>();
string stringValue = "Akshay";
int intValue = 1;
dynamicList.Add(stringValue);
dynamicList.Add(intValue);
您可以使用该集合
ArrayList array = new ArrayList();
string stringValue = "Akshay";
int intValue = 1;
array.Add(stringValue);
array.Add(intValue);