我有一个打印自定义项目类名称的列表框
public class Item
{
public string @Url { get; set; }
public string Name { get; set; }
public double Price { get; set; }
public Item(string @url, string name, double price)
{
this.Url = url;
this.Name = name;
this.Price = price;
}
public override string ToString()
{
return this.Name;
}
}
我尝试了正常的方法,但因为我有单选按钮来对列表框进行排序,因为索引已更改,所以它搞砸了。
例如
//new item is declared
Dictionary<int, Item> itemList = Dictionary<int, Item> { new Item("f.ca", "name1", 33);
new Item("m.ca", "name2", 44); }
//Items added to listbox
for (int v = 0; v < itemList.Count; v++)
{
itemListBox.Items.Add(itemList[v].Name);
}
//start sorting
var priceSort = from item in itemList
orderby item.Value.Price
select new { item.Value.Name, item.Value.Price };
itemListBox.Items.Clear();
foreach (var i in priceSort)
{
itemListBox.Items.Add(i.Name);
}
//end sorting listbox updated
现在新列表已创建,只需要删除 itemlist 中的项目,因为框已更新。
/* This code is what i thought but SelectedIndex say if on 0 and since the sorted by price */
itemList.Remove(itemListBox.SelectedIndex);
现在的问题是,当 items[1] 确实需要删除时,它试图删除 items[0]。有没有办法让它将 itemlistbox 的字符串与 items 字典的 .Name 属性进行比较?