list.add, кажется, добавляет ссылку на исходный объект?
Я создал пару пользовательских классов (NTDropDown
а такжеNTBaseFreight
), который я использую для хранения данных, которые я получаю из БД. Я инициализирую СписокNTBaseFreight
и 2 списка для.NTDropDown
Я могу успешно использоватьList.Add
чтобы добавить грузы в список грузов, но когда я отлаживаю код, мои 2 раскрывающихся списка содержат только 1NTDropDown
, который всегда имеет те же значения, что иNTDropDown
(Я'если предположить, что это проблема со ссылками, но что я делаю не так)?
Для примера, во втором ряду, если перевозчик иcarrier_label
мы"001", "MyTruckingCompany"
и я положил перерыв в заявлении дляfrt_carriers
и frt_carriers и frt_modes будут содержать только 1 элемент в своем списке со значениями"001", "MyTruckingCompany"
... те же значения в.NTDropDown
Код:
List frt_carriers = new List();
List frt_modes = new List();
List freights = new List();
NTDropDown tempDropDown = new NTDropDown();
NTBaseFreight tempFreight = new NTBaseFreight();
//....Code to grab data from the DB...removed
while (myReader.Read())
{
tempFreight = readBaseFreight((IDataRecord)myReader);
//check if the carrier and mode are in the dropdown list (add them if not)
tempDropDown.value = tempFreight.carrier;
tempDropDown.label = tempFreight.carrier_label;
if (!frt_carriers.Contains(tempDropDown)) frt_carriers.Add(tempDropDown);
tempDropDown.value = tempFreight.mode;
tempDropDown.label = tempFreight.mode_label;
if (!frt_modes.Contains(tempDropDown)) frt_modes.Add(tempDropDown);
//Add the freight to the list
freights.Add(tempFreight);
}