मान लीजिए कि मेरे पास Value
प्रकार की वस्तुओं के साथ एक सूची है। Value
एक Name
संपत्ति है:लगातार दोहराने वाले तत्वों को खोजने के लिए लिंक का उपयोग करें
private List<Value> values = new List<Value> {
new Value { Id = 0, Name = "Hello" },
new Value { Id = 1, Name = "World" },
new Value { Id = 2, Name = "World" },
new Value { Id = 3, Name = "Hello" },
new Value { Id = 4, Name = "a" },
new Value { Id = 5, Name = "a" },
};
अब मैं सभी की एक सूची "दोहरा" मूल्यों (तत्वों जहां नाम संपत्ति पिछले तत्व के नाम संपत्ति के साथ समान था) प्राप्त करना चाहते हैं।
इस उदाहरण में मैं दो तत्वों "दुनिया" और "ए" (आईडी = 2 और 5) के साथ एक सूची वापस लौटना चाहता हूं।
क्या यह घटना linq के साथ संभव है? बेशक मैं इतना smth सकता था। इस तरह:
List<Value> tempValues = new List<Value>();
String lastName = String.Empty();
foreach (var v in values)
{
if (v.Name == lastName) tempValues.Add(v);
lastName = v.Name;
}
लेकिन चूंकि मैं इस प्रश्न का अधिक जटिल संदर्भ में उपयोग करना चाहता हूं, शायद एक "linqish" समाधान है।
यह ज़िप विधि है कि यह अधिक कुशल है। लेकिन मुझे लगता है कि ज़िप विधि थोड़ा बेहतर पढ़ती है (यह बहुत स्पष्ट है कि यह क्या करता है) –
+1 वैसे, यह एक अच्छा जवाब है –
एक आकर्षण की तरह काम करता है –