मैं बहुत की तरह डेटा की एक सूची है:सपाट Linq समूह क्वेरी
ID AddressPurpose Address ...
1 L
1 P
2 L
2 P
3 P
3 L
4 P
4 L
5 P
6 L
मैं डेटा को फ़िल्टर करने में सक्षम होना चाहते हैं, जिससे कि एक पी पंक्ति तो यह किसी और दिया जाता है वहाँ है यदि प्रत्येक अद्वितीय संख्या के लिए एल पंक्ति वापस आ गई है। तो डेटा इस तरह दिखेगा:
ID AddressPurpose Address ...
1 P
2 P
3 P
4 P
5 P
6 L
फिलहाल मैं इस क्वेरी जो ठीक काम करता है है:
var query = from c in list
orderby c.AddressPurpose descending
group c by c.ID
into g
select g;
var finalList = new List<Company>();
foreach (var list in query)
{
finalList.Add(list.First());
}
return finalList;
वहाँ अतिरिक्त foreach का उपयोग किए बिना यह करने के लिए एक बेहतर तरीका है?
var query =
from i in (
from c in list
orderby c.AddressPurpose descending
group c by c.ID into g
select g)
select i.First();
return query;
मुझे यकीन है कि यह यह (या संभावित रूप से सबसे अच्छा) करने के लिए एकमात्र तरीका नहीं है, लेकिन यह अपने "foreach" लपेट करता है:
आपको यह लिखना होगा कि मैं अपना खुद का श्वास संपादित कर रहा हूं, एलसी! +1! –
मुझे ऐसा लगता है। मुझे आपके घोंसले के प्रश्न भी पसंद हैं, जब भी आपको जटिल प्रश्नों के माध्यम से पुन: प्रयास करने की आवश्यकता होती है, वे पुन: प्रयोज्य होते हैं। –
धन्यवाद। यह बहुत अच्छा काम करता है। मैं अब "जी में" भाग को समझता हूं। –