【问题标题】:How do I use ListBox.Items.AddRange together with a two dimensional array?如何将 ListBox.Items.AddRange 与二维数组一起使用?
【发布时间】:2012-02-21 21:28:33
【问题描述】:

这是数组:

// 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[]'

如果它是一维数组,就没有问题...我应该怎么做才能让它与二维数组一起工作?

【问题讨论】:

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


    【解决方案1】:

    您可以使用 LINQ 来展平您的二维数组:

    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()
    

    【讨论】:

      【解决方案2】:

      这适用于将一维整数数组添加到列表框控件。 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()
      

      【讨论】:

        猜你喜欢
        • 2015-03-24
        • 1970-01-01
        • 2016-04-11
        • 1970-01-01
        • 2015-07-30
        • 2020-10-24
        • 2011-05-06
        • 1970-01-01
        • 2014-03-06
        相关资源
        最近更新 更多