如何制作不同类型的多维数组

本文关键字:数组 同类型 何制作 | 更新日期: 2023-09-27 18:04:35

我想做一个多维数组,将持有(在一行):字符串,int, bool,字符串。我可以用struct来做,但我想知道是否有一个更优雅的解决方案。

谢谢

如何制作不同类型的多维数组

一种方法是

var values = new Tuple<string, int, bool, string>[10];
values[0] = Tuple.Create(str1, i, b, str2);
但更优雅的方法是创建一个类来封装该数据,并返回一个数组(或者可能只是序列,例如:IEnumerable)。如果你不知道你在做什么,Struct可能是一个坏主意。

如果该数组是方法中的局部变量,则可以使用匿名类

var element = new { str1 = "a", i = 5, b = true, str2 = "b" };
var array = new [] { element };
但是如果这个数据用作字段或方法参数,最好创建一个命名类。将不同类型放入同一数组的唯一方法是将它们强制转换为公共基类型,在您的示例中是Object。在这样做之前,想象一下某个知道你住在哪里的暴力精神病患者将不得不维护你的代码。