我之前尝试过问这个问题,但解释得不够好。我会再试一次,我有一个字典,可以获取和设置图像的字符串并列出获取字符串。字典项目存储在列表框中,当我双击它设置为另一个组合框的项目时。我想单击一个按钮,该按钮将遍历字典,如果它们与字典中的任何内容匹配,它将存储在listView中。我不想要图像,虽然只是字符串名称和价格,这是类和字典:
class BookTitle
{
public string ImageTitle { get; set; }
public List<string> Prices { get; }
public BookTitle(string imageTitle, params string[] prices)
{
ImageTitle = imageTitle;
Prices = new List<string>(prices.Length);
Prices.AddRange(prices);
}
}
private Dictionary<string, BookTitle> prices = new Dictionary<string, BookTitle>
{
{ "Visual Basic", new BookTitle("vb.png", "$55") },
{ "Java", new BookTitle("java.png", "$45") },
{ "C#", new BookTitle("c#.png", "$75") },
{ "LAN Networks", new BookTitle("lan.png", "$68") },
{ "Windows Networking", new BookTitle("windows.png", "$49") },
{ "More About Networking", new BookTitle("more.png", "$54") },
{ "Web Programming", new BookTitle("web.png", "$67") },
{ "JavaScript", new BookTitle("javascript.png", "$64") },
{ "ASP", new BookTitle("asp.png", "$50") }
};
你们认为我应该上一节新课吗?我已经尝试过这个中的许多其他:
private void finalizeButton_Click(object sender, EventArgs e)
{
string cartItems = cartComboBox.Items.ToString();
if (prices.Keys.Contains(cartItems))
{
BookTitle bt = prices[cartItems];
ListViewItem list = cartListView.Items.Add(cartItems);
list.SubItems.Add(cartItems);
}
}
你可以
这样做,
private void finalizeButton_Click(object sender, EventArgs e)
{
foreach (var cmbObj in cartComboBox.Items)
{
if (prices.Keys.Contains(cmbObj.ToString()))
{
BookTitle tempOut;
ListViewItem list =
cartListView.Items.Add(cmbObj.ToString());
if (prices.TryGetValue(cmbObj.ToString(), out tempOut))
list.SubItems.Add(tempOut.Prices[0].ToString());
}
}
}
@Sajeetharan我会
接受你的回答,因为它非常有帮助,让我走上了正确的轨道。我最终这样做了:
private void finalizeButton_Click(object sender, EventArgs e)
{
foreach (var comboItem in cartComboBox.Items)
{
if (prices.Keys.Contains(comboItem.ToString()))
{
BookTitle bt = prices[comboItem.ToString()];
ListViewItem list = cartListView.Items.Add(comboItem.ToString());
foreach (var p in bt.Prices)
{
list.SubItems.Add(p);
}
}
}
}