我可以在数组中放置多个数据类型吗?

时间:2015-12-30 05:12:45

标签: c# types

在Lua和Javascript中,您可以将不同的数据类型放在数组中。 BOOLS;字符串; Ints等。但我看到在C#中,数组看起来像

 string[] keysPressed ={};

那么......我不能在数组中放入不同的数据类型吗?是的,我知道很明显你不能在那条线上。但有没有其他方式我可以创建一个支持不同的东西的数组?

5 个答案:

答案 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)

  1. object array但是,需要记住你是哪种类型 存储并在使用元素时将其强制转换为正确的类型。它有可能抛出一个 运行时例外。
  2. Tuple
  3. 通用集合

答案 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);