سؤال

ولدي فئة (ClassA) الذي يحتوي على خاصية IEnumerable. وبعد ذلك له فئة أخرى (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 حدد البيان لكنه لم يفلح.

وتحرير: يبدو أنني لم ينظر الصعب بما فيه الكفاية. الجواب هنا في هذا السؤال. كيف يمكنني تجميع IEnumerables متعددة من T

وتحرير 2: تتضمن رمز المثال التي عملت بالنسبة لي، أكان أي شخص آخر يحتاج إليها.

هل كانت مفيدة؟

المحلول

وفقط مضيفا جوابي، لذلك هذا لا يذهب دون رد.

وclassAs.SelectMany (classA => classA.MyInts)؛

وجدت هذا من هذا السؤال .

نصائح أخرى

        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