طريقة لحساب جميع العناصر في قائمة كائنات Hierachical

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

سؤال

لدي فئة بسيطة محددة على النحو التالي:

public class MyClass
{
   //Some properties
   public List<MyClass> SubEntries { get; set; }
   //Some more properties
}

في فئة أخرى لدي قائمة بالنوع أعلاه. في الوقت الحالي، أواجه كتلة ذهنية خطيرة. أحتاج فقط إلى ITEEREATE من خلال القائمة وحدد كل حدوث MyClass. نظرا لأن ملكية الفروق الفرعية يمكن أن تحتوي على 0 أو أكثر من الإدخالات التي يمكن أن تحتوي أنفسهم على 0 أو أكثر من الإدخالات، فإنها تضربني أنني بحاجة إلى نوع من طريقة الضغط، ما لم يكن LINQ يوفر آلية للقيام بذلك.

أي مساعدة في إطلاق مربى السجل العقلي هذا سيكون موضع تقدير.

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

المحلول

على افتراض أنك لا تمانع في الضغط على الشجرة، وتحمل القائمة دائما غير فارغة وليس لها دورات:

public class MyClass
{
    public List<MyClass> SubEntries { get; set; }

    public int SubEntryCount
    {
        get { return 1 + SubEntries.Sum(x => x.SubEntryCount); }
    }
}

قد ترغب في إعادة تسميته حتى يكون من الواضح أنه المجموع عدد الإدخالات الفرعية، وليس فقط الأطفال الفوريين.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top