簡體   English   中英

將數組值放入列表框中

[英]Array values into list box

我有以下代碼。

我正在嘗試將值插入列表框中,然后能夠按字母順序對值進行排序,並將它們重新顯示在同一個列表框中。 出於某種原因,代碼不起作用(沒有錯誤 - 當我按下按鈕時,列表框會清除)

protected void sortButton_Click(object sender, ImageClickEventArgs e)
{
    string[] movieArray = new string [cartListBox.Items.Count];

    for (int i = 0; i < cartListBox.Items.Count; i++)
    {
        movieArray[i] = cartListBox.Items[i].ToString();
    }

    Array.Sort(movieArray);

    cartListBox.Items.Clear();

    for (int i = 0; i < cartListBox.Items.Count; i++)
    {
        cartListBox.Items.Add(movieArray[i].ToString());
    }

}

我認為問題出在最后一個循環中。

這樣做如下:

cartListBox.Items.Clear();

    for (int i = 0; i < movieArray.Length; i++)
    {
        cartListBox.Items.Add(movieArray[i].ToString());
    }

當您清除cartListBox.Items.Clear(); ,不應將其用於循環計數器,例如for (int i = 0; i < cartListBox.Items.Count; i++)

cartListBox.Items.Count產生了問題。

通過以更現代的方式執行此操作,您可以避免所有這些循環和錯誤:

var items = cartListBox.Items
    .Select(item => item.ToString())
    .OrderBy(x => x);

cartListBox.Items.Clear();

cartListBox.Items.AddRange(items);
cartListBox.Items.Count // is 0 length

您在上一步中執行的操作:

cartListBox.Items.Clear(); 

要將 movieArray 添加到列表框,請使用 AddRange

  • carListBox.Items.AddRange(movieArray);

排序只需設置 sorted =true

  • carListBox.Sorted=true;

完整代碼如下

  • carListBox.Items.AddRange(movieArray);
  • carListBox.Sorted=true;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM