我可以在一个数组中放入多个数据类型吗

本文关键字:数据类型 一个 我可以 数组 | 更新日期: 2023-09-27 18:28:23

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

 string[] keysPressed ={};

所以。。。我可以不在数组中放入不同的数据类型吗?是的,我知道你显然不能在那一行。但是,是否有其他方法可以创建一个支持不同内容的数组?

我可以在一个数组中放入多个数据类型吗

您正在寻找一个数组或动态集合。有关更多MSDN动态数据类型

Dynamic可以像我们在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";

您也可以使用object数组。

object[] keysPressed ={};

您可以使用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

需要记住的另一件重要事情是,将基元添加到此集合会导致装箱

  1. 对象数组,但是,它需要记住您使用的是哪种类型存储并在使用元素时将其强制转换为正确的类型。有可能抛出运行时出现异常
  2. Tuple
  3. 泛型集合

为什么不使用动态特性。

 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);
相关文章: