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

时间:2014-05-21 23:11:44

标签: c# multidimensional-array

我想创建一个多维数组,它将保存(在一行中):string,int,bool,string。 我可以使用struct来做,但我想知道是否有更优雅的解决方案。

谢谢

2 个答案:

答案 0 :(得分:4)

一种方法是

var values = new Tuple<string, int, bool, string>[10];
values[0] = Tuple.Create(str1, i, b, str2);

但更优雅的方法是创建一个类来封装该数据,并返回一个数组(或者,也许只是序列,即:IEnumerable)。 如果你不知道你在做什么,那么结构可能是一个坏主意。

答案 1 :(得分:1)

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

var element = new { str1 = "a", i = 5, b = true, str2 = "b" };
var array = new [] { element };

但是如果将此数据用作字段或方法参数,则最好创建一个命名类。将不同类型放在同一个数组中的唯一方法是将它们转换为公共基类型,在您的情况下是Object。在这样做之前,想象一下那些知道你住在哪里的暴力精神病患者将不得不维护你的代码。