2012-05-13 2 views
1

Прежде всего, это очень новое для C# im, пытающегося воссоздать приложение, созданное на Java.Связывание 4-х списковых ящиков

У меня есть 4 списка. В каждом окне будет храниться список значений из xml-файла.

listBox_year для <Year>. listBox_make для <Make>. listBox_model для <Model>. listBox_subModel предназначен для <sub-Model>.

Так что скажем, что я добавляю все годы в списокBox_year без дублирующих лет. Скажем, я нажимаю на год, и это принесет все автомобили автомобилей, которые есть в этом году. Затем я нажимаю на Make, и он выведет модели для этого Make Thats в этом году и т. Д.

с помощью Java я смог использовать HashMap, чтобы сделать эту работу, где я могу иметь несколько ключей одно и то же имя, и я могу выполнить поиск того, что когда-либо было выбрано в этом случае, выбранный год захватывает все значения или значения, которые имеют этот год в качестве ключа.

Вот формат XML

<?xml version="1.0" encoding="utf-8" ?> 
<vehicles> 

    <Manufacturer> 
    <Make>Subaru</Make> 
    <Year>2010</Year> 
    <Model>Impreza</Model> 
    <Sub-Model>2.0i</Sub-Model> 
    <Highway>36 MPG highway</Highway> 
    <City>27 MPG city</City> 
    <Price>$17,495</Price> 
    <Description> 
     Symmetrical All-Wheel Drive. 
     SUBARU BOXER® engine. 
     Seven airbags standard. 
     >Vehicle Dynamics Control (VDC). 
    </Description> 
    </Manufacturer> 

    <Manufacturer> 
    <Make>Toyota</Make> 
    <Year>2012</Year> 
    <Model>Supra</Model> 
    <Sub-Model>TT</Sub-Model> 
    <Highway>22 MPG highway</Highway> 
    <City>19 MPG city</City> 
    <Price>$48,795</Price> 
    <Description> 
     16-inch aluminum-alloy wheels. 
     6-speaker audio system w/iPod® control. 
     Bluetooth® hands-free phone and audio. 
     Available power moonroof. 
    </Description> 
    </Manufacturer> 

    <Manufacturer> 
    <Make>Subaru</Make> 
    <Year>2011</Year> 
    <Model>Impreza</Model> 
    <Sub-Model>2.0i Limited</Sub-Model> 
    <Highway>36 MPG highway</Highway> 
    <City>27 MPG city</City> 
    <Price>$18,795</Price> 
    <Description> 
     16-inch aluminum-alloy wheels. 
     6-speaker audio system w/iPod® control. 
     Bluetooth® hands-free phone and audio. 
     Available power moonroof. 
    </Description> 
    </Manufacturer> 

    <Manufacturer> 
    <Make>Subaru</Make> 
    <Year>2011</Year> 
    <Model>Impreza</Model> 
    <Sub-Model>2.0i Limited</Sub-Model> 
    <Highway>36 MPG highway</Highway> 
    <City>27 MPG city</City> 
    <Price>$18,795</Price> 
    <Description> 
     16-inch aluminum-alloy wheels. 
     6-speaker audio system w/iPod® control. 
     Bluetooth® hands-free phone and audio. 
     Available power moonroof. 
    </Description> 
    </Manufacturer> 

</vehicles> 
+1

Что вы хотите сказать? Вы ищете «Словарь»? – SLaks

+0

Я не уверен, что вызвала коллекция, но похоже, что @lcfseth ответил на вопрос довольно быстро. –

ответ

1

Ближайший тип к Java HashMap является словарь. Поскольку вам нужно иметь несколько элементов с одним и тем же ключом, я бы использовал Dictionary<int,List<Item>>. Вот некоторые основные функции, которые могут вам понадобиться:

void AddItem(int key, Item i, Dictionary<int,List<Item>> dict) 
{ 
    if (!dict.ContainsKey(key)) 
    { 
     dict.Add(i,new List<Item>()); 
    } 
    dict[key].Add(i); 
} 

List<Item> GetList(int key) 
{ 
    if (dict.ContainsKey(key)) 
    { 
     return dict[key]; 
    } 
    else 
    { 
     return new List<Item>(); // can also be null 
    } 
} 
+0

Большое спасибо, я попробую. Я не был на сайте через некоторое время. –

Смежные вопросы