Como eu combinar vários lista IEnumerable juntos
-
10-07-2019 - |
Pergunta
Eu tenho uma classe (ClassA) que tem uma propriedade IEnumerable. Eu, então, tem uma outra classe (ClassB) que tem a mesma propriedade. Eles estão compartilhando uma interface (InterfaceA). O ClassB é basicamente uma classe de contêiner para vários ClassA de. Como eu implementar a propriedade para 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);
}
}
}
Eu tentei usar uma instrução select LINQ, mas que não funciona.
Edit: Parece que eu não parecia forte o suficiente. A resposta está aqui nesta questão. Como faço para agregar vários IEnumerables de T
Edit 2: Incluir o código de exemplo que funcionou para mim, alguém precisa de outra pessoa meter-lo.
Solução
Basta adicionar a minha resposta, de modo que este não ficar sem resposta.
classAs.SelectMany (classA => classA.MyInts);
Encontrei este de esta questão .
Outras dicas
public IEnumerable<int> MyInts
{
get
{
foreach (ClassA c in classAs)
{
foreach (int i in c.MyInts)
{
yield return i;
}
}
}
}