كيف يمكنني تكرار أخطاء .صافي IList جمع في ترتيب عكسي ؟

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

  •  01-07-2019
  •  | 
  •  

سؤال

لدي IList أن يحتوي على العناصر ( الأصل الأول ) ، فإنها تحتاج إلى أن تضاف إلى الرسم البياني الوثيقة في ترتيب عكسي حتى أن الوالد يضاف الماضي مرسومة على أعلى حيث أن هذا هو أول شيء يجب أن يتم اختيارها من قبل المستخدم.

ما هي أفضل طريقة للقيام بذلك ؟ شيء أفضل/أكثر أناقة من ما أقوم به حاليا التي أنشر أدناه..

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

المحلول

إذا كان لديك .NET framework 3.5 هل يمكن استخدام LINQ هو العكس ؟

foreach(var item in obEvtArgs.NewItems.Reverse())
{
   ...
}

(على افتراض أنك تتحدث عن عامة IList)

نصائح أخرى

استنادا إلى التعليقات ديفي الإجابة, ، Gishu الأصلي الإجابة, يمكنك أن يلقي بك ضعيف كتبته System.Collections.IList إلى جمع عام باستخدام System.Linq.Enumerable.Cast طريقة التمديد:

var reversedCollection = obEvtArgs.NewItems
  .Cast<IMySpecificObject>( )
  .Reverse( );

هذا يزيل الضوضاء من كل العكسي for حلقة ، as يلقي على كتابة بشدة كائن من جمع الأصلي.

NewItems قائمتي هنا...هذا هو عالي الكعب قليلا بالرغم من ذلك.

for(int iLooper = obEvtArgs.NewItems.Count-1; iLooper >= 0; iLooper--)
            {
                GoViewBoy.Document.Add(CreateNodeFor(obEvtArgs.NewItems[iLooper] as IMySpecificObject, obNextPos));
            }

أنت لا تحتاج إلى LINQ:

var reversed = new List<T>(original); // assuming original has type IList<T>
reversed.Reverse();
foreach (T e in reversed) {
  ...
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top