如何将ListBox.Items.AddRange与二维数组一起使用?

时间:2012-01-29 23:51:21

标签: c# visual-studio-2010 multidimensional-array listbox

这是数组:

// 2D array of strings.
string[,] calendar2D_Array = new string[33,13];

然后我用很多字符串初始化数组......

我试图让我的列表框使用数组:

private void frmCalender_Load(object sender, EventArgs e)
{
    listBoxCalender.Items.AddRange(calendar2D_Array);
}

编译器现在声明: 无法从'string []'转换为'object []'

如果它是一个单维数组,就没有问题......我该如何才能让它与二维数组一起工作?

2 个答案:

答案 0 :(得分:4)

您可以使用LINQ来展平您的2D阵列:

Enumerable.Range(0,33*13).Select(i => calendar2D_Array[i/13,i%13]).ToArray()

Enumerable.Range(0,33*13).Select(i => calendar2D_Array[i%33,i/33]).ToArray()

答案 1 :(得分:-1)

这适用于将整数的一维数组添加到Listbox控件。 AddRange比使用循环要快得多(即Listbox1.items.add(iArray(i))

ReDim Preserve iArray(iCount - 1) ' Number of items added to Array
ListBox1.BeginUpdate() 
ListBox1.Items.AddRange(iArray.Cast(Of Object).ToArray)
ListBox1.EndUpdate()