カスタム項目クラスの名前を出力するリストボックスがあります
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 プロパティと比較する方法はありますか?