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