मैं निम्नलिखित है कहते हैं:वाया एक संपत्ति दो सूचियों की तुलना करें LINQ
class Widget1{
public int TypeID { get; set; }
public string Color { get; set; }
}
class Widget2
{
public int TypeID { get; set; }
public string Brand { get; set; }
}
private void test()
{
List<Widget1> widgets1 = new List<Widget1>();
List<Widget2> widgets2 = new List<Widget2>();
List<Widget1> widgets1_in_widgets2 = new List<Widget1>();
//some code here to populate widgets1 and widgets2
foreach (Widget1 w1 in widgets1)
{
foreach (Widget2 w2 in widgets2)
{
if (w1.TypeID == w2.TypeID)
{
widgets1_in_widgets2.Add(w1);
}
}
}
}
मैं दो foreach उपयोग कर रहा हूँ एक तिहाई सूची को पॉप्युलेट करने के TypeID द्वारा सूचियों की तुलना करने के लिए लूप। क्या टाइपिड के माध्यम से इन दो सूचियों की तुलना करने के लिए LINQ का उपयोग करने का कोई और तरीका है? शायद इंटरस्टेक्ट या कुछ अन्य फ़ंक्शन का उपयोग कर रहे हैं?
+1 _ _ यह एक विकल्प होगा जब एक कस्टम 'IEqualityComparer' संभव होगा "अपने मामले को देखते हुए, इंटरसेक्ट एक विकल्प नहीं है", तो एक आम आधार प्रकार। फिर आप इसे [इस अधिभार] (http://msdn.microsoft.com/en-us/library/bb355408.aspx) पर पास कर सकते हैं या 'TypeID 'की तुलना में' बेसविड्ज 'में' बराबर '+' GetHashCode' को ओवरराइड कर सकते हैं डिफ़ॉल्ट रूप से। –