मैं एक सूची में विशिष्ट मान प्राप्त करना चाहता हूं, लेकिन मानक समानता तुलना से नहीं। ,एक अनुमान के अनुसार अलग-अलग मूल्यों को वापस करने के लिए कोई लिंक विधि क्यों नहीं है?
return myList.Distinct((x, y) => x.Url == y.Url);
मैं नहीं कर सकता वहाँ Linq में कोई विस्तार विधि है कि यह कर देगा नहीं है - केवल एक ही है कि एक IEqualityComparer
लेता है:
मुझे क्या करना चाहते हैं कुछ इस तरह है।
मैं इस के साथ उसके चारों ओर हैक कर सकते हैं:
return myList.GroupBy(x => x.Url).Select(g => g.First());
लेकिन वह गंदा लगता है। यह भी वही काम नहीं करता है - मैं इसे केवल यहां उपयोग कर सकता हूं क्योंकि मेरे पास एक ही कुंजी है।
मैं भी अपने ही जोड़ सकते हैं:
public static IEnumerable<T> Distinct<T>(
this IEnumerable<T> input, Func<T,T,bool> compare)
{
//write my own here
}
लेकिन वह नहीं बल्कि कुछ है कि पहली जगह में होना चाहिए लेखन की तरह प्रतीत होता है।
कोई भी जानता है कि यह विधि क्यों नहीं है?
क्या मुझे कुछ याद आ रही है?
त्वरित उत्तर के लिए धन्यवाद - मैं इसका उपयोग कर सकता हूं! कोई विचार क्यों उन्होंने इन सभी को छोड़ दिया ... द्वारा (भविष्यवाणी) विधियों? – Keith
वास्तव में नहीं, मुझे डर है। जब मैं सुविधाओं का एक महत्वपूर्ण सेट प्राप्त करता हूं तो मैं मोरलिंक प्रोजेक्ट के बारे में ब्लॉग करूंगा ... मूल रूप से यह एक ओपन सोर्स प्रोजेक्ट होगा जिसमें LINQ से ऑब्जेक्ट्स के एक्सटेंशन होंगे, और शायद पुश LINQ भी होगा। –
अगर मुझे लगता है, तो मैं IQueryable विकल्पों के साथ समानता के लिए अनुमान लगाऊंगा, और टीएसक्यूएल में यथार्थवादी (बीमार होने के बिना) क्या है। तो DISTINCT (table.column) ठीक है, लेकिन आपको एक आसान कुंजी और DistinctBy के लिए कुछ और जटिल TSQL की आवश्यकता होगी ... –