Как мне объединить несколько IEnumerable list вместе
-
10-07-2019 - |
Вопрос
У меня есть класс (ClassA), который имеет свойство IEnumerable .Затем у i есть другой класс (ClassB), который обладает тем же свойством.Они совместно используют интерфейс (InterfaceA).ClassB - это, по сути, класс-контейнер для нескольких ClassA .Как мне реализовать свойство для 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);
}
}
}
Я попытался использовать оператор LINQ select, но это не сработало.
Редактировать:Похоже, я недостаточно внимательно присмотрелся.Ответ находится здесь, в этом вопросе.Как мне объединить несколько IEnumerables из T
Правка 2:Включите пример кода, который сработал у меня, на случай, если он понадобится кому-то еще.
Решение
Просто добавляю свой ответ, чтобы это не осталось без ответа.
classAs.Выберите множество(ClassA => ClassA.Мои имена);
Нашел это из этот вопрос.
Другие советы
public IEnumerable<int> MyInts
{
get
{
foreach (ClassA c in classAs)
{
foreach (int i in c.MyInts)
{
yield return i;
}
}
}
}