क्या सबसे कारगर तरीका एक विधि है कि n सूचियों की तुलना और सभी मूल्यों है कि सभी सूचियों में दिखाई नहीं देते वापस आ जाएगी लिखने के लिए है, इसलिए किLinq मूल्यों को प्राप्त एकाधिक सूचियों के बीच साझा नहीं
var lists = new List<List<int>> {
new List<int> { 1, 2, 3, 4 },
new List<int> { 2, 3, 4, 5, 8 },
new List<int> { 2, 3, 4, 5, 9, 9 },
new List<int> { 2, 3, 3, 4, 9, 10 }
};
public IEnumerable<T> GetNonShared(this IEnumerable<IEnumerable<T>> lists)
{
//...fast algorithm here
}
ताकि
सूचियां। GetNonShared();
रिटर्न 1, 5, 8, 9, 10
मैं
public IEnumerable<T> GetNonShared(this IEnumerable<IEnumerable<T>> lists)
{
return list.SelectMany(item => item)
.Except(lists.Aggregate((a, b) => a.Intersect(b));
}
था लेकिन मुझे यकीन है कि अगर कुशल था नहीं था। आदेश कोई फर्क नहीं पड़ता। धन्यवाद!
के लिए आप यकीन है कि अगर यह "कुशल" नहीं कर रहे हैं? यह मुद्दा नहीं है। मुद्दा यह है: अर्थशास्त्र सही हैं, और क्या यह आपकी प्रदर्शन आवश्यकताओं को पूरा करता है? आपके कार्यान्वयन के अर्थशास्त्र सही हैं। केवल आप ही जान सकते हैं कि यह आपकी प्रदर्शन आवश्यकताओं को पूरा करता है या नहीं। – jason