I have a class (ClassA) that has a IEnumerable property. I then has another class (ClassB) that has the same property. They are sharing an interface (InterfaceA). The ClassB is basically a container class for multiple ClassA's. How to I implement the property for ClassB.
interface InterfaceA
{
IEnumerable<int> MyInts
{
get;
}
}
class ClassA : InterfaceA
{
public IEnumerable<int> MyInts
{
get;
private set;
}
}
class ClassB : InterfaceA
{
ClassA[] classAs = new ClassA[10];
public IEnumerable<int> MyInts
{
get
{
//What goes here ?
classAs.SelectMany(classA => classA.MyInts);
}
}
}
I tried using a LINQ select statement but that doesn't work.
Edit: Looks like I didn't look hard enough. The answer is here in this question. How do I Aggregate multiple IEnumerables of T
Edit 2: Include the example code that worked for me, incase anyone else needs it.
Just adding my answer, so this doesn't go unanswered.
classAs.SelectMany(classA => classA.MyInts);
Found this from this question.
public IEnumerable<int> MyInts
{
get
{
foreach (ClassA c in classAs)
{
foreach (int i in c.MyInts)
{
yield return i;
}
}
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With