2013-06-05 8 views
5

मैं गुमनाम प्रकार है कि मैं अपने डेटाबेस से प्राप्त की एक सूची है पर संघ को एक नई अज्ञात प्रकार सूची बनाएं पाश। जब मैं लूप में वापस आऊंगा तो मैं इस सूची में एक नया अनाम आइटम जोड़ना चाहता हूं।मौजूदा गुमनाम प्रकार सूची

कुछ की तरह:

takenChannels.Union{new[] { new{Start = DateTime.Now, End = DateTime.Now.AddDays(1), Channel = 25, TourArea = "Area" }}); 

जाहिर है यह काम नहीं करता। मैं यह कैसे करुं?

संपादित करें 1:

takenChannels.Add(new { Start = s, End = e, Channel = channel, TourArea = booking.TourArea }); 

यह निकटतम मैं अब तक (डैनियल के लिए धन्यवाद) मिल गया है है ... लेकिन त्रुटि मैं मिलता है:

त्रुटि 6 तर्क 1: से 'AnonymousType # 2' को 'AnonymousType # 1' में परिवर्तित

+2

'जाहिर है यह काम नहीं करता है।' नहीं, यह स्पष्ट नहीं है। क्या इससे कोई त्रुटि उत्पन्न होती है? यदि ऐसा है तो क्या? मुझे यह काम नहीं करना पड़ेगा। ध्यान दें कि 'संघ' सूची को म्यूटेट नहीं करता है, यह एक नया अनुक्रम बनाता है, इसलिए आपको परिणाम देखने के लिए कुछ असाइन करना होगा। – Servy

+0

क्षमा करें, मैं अपने कोड से गड़बड़ कर रहा हूं। वहाँ 2 प्रयास समाधानों का एक मैश है। मैंने अपना क्यू – Smithy

+2

संपादित किया है गुणों के प्रकार ठीक से मेल नहीं खाते हैं। शायद उनमें से एक एक स्थान पर एक स्ट्रिंग और दूसरे में एक int है, या ऐसा कुछ है। यदि आप सुनिश्चित करते हैं कि आपके पास वही गुण * बिल्कुल * समान नाम हैं और * बिल्कुल * समान प्रकार हैं तो यह ठीक काम करेगा। – Servy

उत्तर

9

इस उत्तर देर से एक सा हो सकता है, लेकिन जब से यह सवाल मैंने पाया जब एक ही समस्या के लिए Googling है, मुझे लगता है कि मैं एक काम कर जवाब के साथ यह पूरा करना चाहिए।

अज्ञात प्रकारों पर Union कई बार कोई समस्या नहीं है। यह महत्वपूर्ण है कि सभी गुणों को सभी मामलों में घोषित किया गया है और उनके पास समान डेटा प्रकार है। यदि नहीं, तो आपको उपरोक्त त्रुटि मिलती है।

  • अपने विशिष्ट मामले में, डेटाबेस शायद TourStartDateTime या TourEndDateTimeDateTime? के रूप में वापसी करता है?
  • RadioChannel डेटाबेस से int या शायद int? या string है?
  • TourArea डेटाबेस में string है?

बस सुनिश्चित करें कि डेटा प्रकार मेल खाते हैं और आपको ठीक होना चाहिए। नीचे कोड का एक काम करने वाला स्निपेट है जो मैं अपने प्रोग्राम में उपयोग करता हूं:

var regions = (
    new[] { new { Id = "-1", Name = "---", Pattern = (string)null } } 
).Union(
    from x in db.Userlists where x.ListType == 2 select new { Id = x.UserlistID.ToString(), Name = x.Name, Pattern = (string)null } 
).Union(
    from x in db.Lookups where x.Category == "Stock" select new { Id = x.Key, Name = x.Key, Pattern = x.Value } 
).ToArray(); 
+0

बहुत बहुत धन्यवाद Mattias। –

3

आप कर सकते हैं बस Add सूची में नहीं कर सकते हैं:

takenChannels.Add(new { Start = ... }); 
+1

क्या मैं जोड़ सकता हूं ... सुनिश्चित करें कि आपके द्वारा जोड़े गए अनाम प्रकार ऑब्जेक्ट के नाम और प्रकार सूची आइटम के समान हैं। – Les

संबंधित मुद्दे