Как мне объединить несколько IEnumerable list вместе

StackOverflow https://stackoverflow.com/questions/1222846

  •  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;
                    }
                }
            }

        }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top