将元素按元素组合成锯齿状数组

时间:2010-09-29 14:19:57

标签: c# arrays casting jagged-arrays

我有一个接受锯齿状对象数组的方法。

public void MyDataBind(object[][] data)

我像这样使用它

GoogleChart1.MyDataBind(new[] { new object[] { "September 1", 1 }, new object[] { "September 2", 10 } });

我有两个这样的数组中的源数据,并希望将它们传递给方法:

var sDate = new string[] {"September 1", "September 2"};
var iCount = new int[] { 1, 2 };

如何将这些预定义的数组值传递,转换或转换为此方法?

2 个答案:

答案 0 :(得分:4)

如果您使用的是.NET 4,那么可以使用Zip方法合并两个数组:

MyDataBind(sDate.Zip(iCount, (s, i) => new object[] { s, i }).ToArray());

答案 1 :(得分:3)

编辑:

更简单,更清洁:

 var result = sDate.Select((s, index) => new object[] { s, iCount[index] }).ToArray();

一个简单的解决方案:

    List<object> items = new List<object>();
    for (int i = 0; i < sDate.Length; i++)
        items.Add(new object[] { sDate[i], iCount[i] });
    var result = items.ToArray();

您可以定义方法Combine(T [] array1,T [] array2),以获得更通用的解决方案。