[英]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
排序只需設置 sorted =true
完整代碼如下
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.