मैं इस मुद्दे को बार-बार चलाता हूं: मैं ऑब्जेक्ट्स की सूची को अन्य ऑब्जेक्ट्स की एक सूची में कैसे समूहित कर सकता हूं?मैं तत्वों की सूची से कैसे समूह कर सकता हूं?
मेरे पास A
प्रकार की वस्तुओं की एक सूची है और इनमें से प्रत्येक ऑब्जेक्ट में एक संपत्ति है (इसे ListProp
पर कॉल करें) जो एक सूची भी है। ListProp
में B
के तत्व हैं। के साथ - ListProp
में ListProp
गुण संदर्भ के साथ A
के कई तत्व हैं, लेकिन संदर्भ संदर्भ तत्व से तत्व में भिन्न हैं। मैं इन A
को सबसे बड़ा तरीका कैसे बना सकता हूं, जहां B
-ListProp
में ऑब्जेक्ट समान रूप से हैं?
नमूना कोड:
class Program
{
static void Main(string[] args)
{
var exampleList = new List<A>
{
// Should be in first group
new A { ListProp = new List<B>
{
new B { Prop = new C { Number = 0 }},
new B { Prop = new C { Number = 1 }}
}},
// Should be in first group
new A { ListProp = new List<B>
{
new B { Prop = new C { Number = 0 }},
new B { Prop = new C { Number = 1 }}
}},
// Should be in second group
new A { ListProp = new List<B>
{
new B { Prop = new C { Number = 0 }},
new B { Prop = new C { Number = 1 }},
new B { Prop = new C { Number = 1 }}
}},
// Should be in third group
new A { ListProp = new List<B>
{
new B { Prop = new C { Number = 0 }},
new B { Prop = new C { Number = 0 }}
}}
};
// Doesn't work because the reference of ListProp is always different
var groupedExampleList = exampleList.GroupBy(x => x.ListProp);
}
}
class C
{
public int Number { get; set; }
public override bool Equals(object o)
{
if (o is C)
return Number.Equals(((C)o).Number);
else
return false;
}
}
class B
{
public C Prop { get; set; }
}
class A
{
public IList<B> ListProp { get; set; }
}
क्यों पिछले तीसरे समूह में होना चाहिए? यह पहले होना चाहिए, है ना? – abatishchev
क्योंकि तत्वों की संख्या भी वही होनी चाहिए। 0,1! = 0,1,1 – germanSharper
ठीक है कि अनुचित संपादन था। अभी स्पष्ट करें। – abatishchev