मैं कुछ वर्ग के प्रकार के 2 सूची वस्तु है में स्थानीय चर का उपयोग करने,कैसे एक लैम्ब्डा अभिव्यक्ति
class person
{
public string id { get; set; }
public string name { get; set; }
}
List<person> pr = new List<person>();
pr.Add(new person { id = "2", name = "rezoan" });
pr.Add(new person { id = "5", name = "marman" });
pr.Add(new person { id = "3", name = "prithibi" });
List<person> tem = new List<person>();
tem.Add(new person { id = "1", name = "rezoan" });
tem.Add(new person { id = "2", name = "marman" });
tem.Add(new person { id = "1", name = "reja" });
tem.Add(new person { id = "3", name = "prithibi" });
tem.Add(new person { id = "3", name = "prithibi" });
अब मैं से सभी आईडी प्राप्त करने के लिए "जनसंपर्क" ListObject है कि कोई प्रवेश या "tem" ListObejct में प्रविष्टियों की विषम संख्या। लैम्डा का उपयोग करना
HashSet<string> inconsistantIDs = new HashSet<string>(pr.Select(p => p.id).Where(p => tem.FindAll(t => t.id == p).Count == 0 || tem.FindAll(t => t.id == p).Count % 2 != 0));
ऐसा करने के लिए मैं का इस्तेमाल किया है, और यह ठीक काम करता है।
लेकिन आप कोड मैं tem.FindAll का इस्तेमाल किया है .Count (टी => == पी t.id) दो बार == 0 और % 2! = 0 साथ comapre करने से देख सकते हैं।
वहाँ किसी भी तरह से एक अस्थायी चर करने के लिए इसे बचाने tem.FindAll (टी => == पी t.id) .Count एक बार और उपयोग करना और फिर == 0 के साथ इस चर तुलना करने के लिए है और % 2! = 0।
अधिक बस मैं इसे दो शर्त के लिए एक बार उपयोग करना चाहता हूं।
कृपया के रूप में "का सामना करना पड़ मुद्दा subjjects का उपयोग नहीं करते
अभी आप एक
O(n*m)
एल्गोरिथ्म, जोO(n+m)
को कम किया जा होता है xxx में ", यह Google- लिंक होगा। –आपको मिल गया @TimSchmelter – Rezoan