मैंने सोचा कि मुझे Intersect
समझा गया है, लेकिन यह पता चला कि मैं गलत था।सभी अंतरण डेटा खोजें, न केवल अद्वितीय मान
List<int> list1 = new List<int>() { 1, 2, 3, 2, 3};
List<int> list2 = new List<int>() { 2, 3, 4, 3, 4};
list1.Intersect(list2) => 2,3
//But what I want is:
// => 2,3,2,3,2,3,3
मैं की तरह एक तरह से समझ सकते हैं:
var intersected = list1.Intersect(list2);
var list3 = new List<int>();
list3.AddRange(list1.Where(I => intersected.Contains(I)));
list3.AddRange(list2.Where(I => intersected.Contains(I)));
वहाँ LINQ में एक आसान तरीका है इस लक्ष्य को हासिल करने के लिए है?
मुझे यह बताने की ज़रूरत है कि मुझे परवाह नहीं है कि परिणाम किस क्रम में दिए गए हैं।
2,2,2,3,3,3,3 पूरी तरह ठीक है।
समस्या यह है कि मैं इसे बहुत बड़े संग्रह पर उपयोग कर रहा हूं, इसलिए मुझे दक्षता की आवश्यकता है।
हम वस्तुओं के बारे में बात कर रहे हैं, इनट्स नहीं। स्याही सिर्फ आसान उदाहरण के लिए थे, लेकिन मुझे एहसास हुआ कि इससे कोई फर्क पड़ सकता है।
अपने अपडेटों को देखते हुए, आपकी समस्या को हल करने के लिए और भी अधिक प्रभावी तरीके हो सकते हैं। डेटा के बारे में हमें और बताएं। विशेष रूप से, मुझे इस सवाल में दिलचस्पी है कि आपके बहुत बड़े संग्रह में ज्यादातर अद्वितीय तत्व हैं, या अधिकतर डुप्लिकेट हैं। मुझे यह जानने में भी दिलचस्पी है कि क्या तत्व वास्तव में पूर्णांक हैं, या यदि यह कुछ जटिल प्रकार के लिए स्टैंड-इन है; विशेष रूप से, क्या आपके डेटा पर एक * कुल आदेश * परिभाषित किया गया है? यही है, इस डेटा का एक सेट दिया गया है, क्या एक अद्वितीय, अच्छी तरह से परिभाषित सबसे छोटा सबसे बड़ा आदेश है? –