2013-10-14 66 views
-4

我创建了两个列表,一个名为汽车名称,它们显示在一个名为combo_car的组合框中,另一个名为carprices的列表保存每辆车的价格,与汽车名称列表相似地排序,我想现在当我在组合框中选择一个汽车名称时,它的等价价格出现在文本框中,那么我该怎么办?在C#中链接两个列表

+0

您正在使用哪个GUI库? WPF,WinForms,还有别的? – jeyk

+0

可以使用字典 – Rohit

+0

您应该创建一个对象来保存这两个东西,并把它们放到一个列表中。 –

回答

0

它是WPF或WFA?

不知道如果我正确地得到你的意图,但SelectedIndexChanged事件添加到您的组合框,并把下面的代码在那里:

private void combo_car_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     if (combo_car.SelectedIndex != -1) 
     { 
      textBox1.Text = listBox2[combo_car.SelectedIndex].ToString(); 
     }   
    } 

反正使用字典是更好的选择。

0

我觉得你最好使用一个字典。在这里您可以将价格保存到汽车上直接访问它。

0

的指数变化添加事件:

combo_car.SelectedIndexChanged += (s, e) 
{ 
    if(combo_car.SelectedIndex != -1) 
    { 
     textBox1.Text = carprices[combo_car.SelectedIndex].ToString(); 
    } 
} 
2

我会建议使用的Dictionary而不是两个独立的列表。关键是Car,价值是它的价格。

然后你可以使用carDictionary.Keys源的组合框,并得到它的价格由价值:

var carDictionary = new Dictionary<String, Decimal>(); 
// add all cars 

检索价格:

decimal price = carDictionary[carCombo.Text];