मैंने कुछ कस्टम क्लास (NTDropDown
और NTBaseFreight
) बनाए हैं जो मैं डेटा को संग्रहीत करने के लिए उपयोग करता हूं जिसे मैं डीबी से पुनर्प्राप्त करता हूं। मैंने NTBaseFreight
की सूची और NTDropDown
के लिए 2 सूचियों की शुरुआत की।list.add मूल वस्तु का संदर्भ जोड़ रहा है?
मैं सफलतापूर्वक List.Add
उपयोग कर सकते हैं freights सूची freights जोड़ने के लिए, लेकिन जैसा कि मैंने कोड डीबग, मेरे 2 लटकती सूचियों केवल 1 NTDropDown
होते हैं, हमेशा (मैं यह सोचते कर रहा हूँ कि यह एक संदर्भित है NTDropDown
मान जैसे ही हैं जो समस्या, लेकिन मैं गलत क्या कर रहा हूँ)?
दूसरी पंक्ति पर एक उदाहरण देने के लिए, यदि वाहक और carrier_label
"001", "MyTruckingCompany"
थे और मैं frt_carriers
के लिए अगर बयान पर एक को तोड़ने में कहें, दोनों frt_carriers और frt_modes मूल्यों "001", "MyTruckingCompany"
साथ अपनी सूची में केवल 1 आइटम होते हैं, ... NTDropDown
में वही मान।
कोड:
List<NTDropDown> frt_carriers = new List<NTDropDown>();
List<NTDropDown> frt_modes = new List<NTDropDown>();
List<NTBaseFreight> freights = new List<NTBaseFreight>();
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);
}
ठीक है, मैंने इसे समझ लिया ... मुझे हर बार एक नया एनटीडीआरओडाउन शुरू करने की आवश्यकता है (फिर से tempDropDown का पुन: उपयोग न करें)। इसलिए, 'tempDropDown = new NTDropDrop();' प्रत्येक बार इसका उपयोग करने से पहले 'जोड़ना। क्या मुझे यह प्रश्न हटाना चाहिए? –
नहीं। प्रश्न छोड़ दो। अपना खुद का प्रश्न हल करना अभी भी हर किसी के लिए उपयोगी है। – hometoast