سؤال

هل لدى أي شخص طريقة تمديد لتحويل أنواع بسرعة في LinkedList<T> باستخدام أ Converter<TInput, TOutput>?

أنا مندهش قليلا، أين هو ConvertAll<TOutput>(delegate)?

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

المحلول

ال ConvertAll يسمى ما يعادله في طرق التمديد LinQ Select!

var result = myLinkedList.Select(x => FancyCalculationWith(x))

نصائح أخرى

يعتمد على ما تريد الخروج منه، ولكن يمكنك استخدام castly ثم تعداد من خلال ienumerable الناتج.

  public class Foo
  {
    ...
  }

  public class Bar : Foo
  {
    ...
  }

  var list = new LinkedList<Bar>();
  .... make list....

  foreach (var foo in list.Cast<Foo>())
  {
      ...
  }

كما يقول TVANFOSSON. من الممكن Cast<T> ولكن إذا كنت ترغب في تجنب InvalidCastException يمكنك استعمال ال OfType<T> طريقة التمديد التي ستنتقل بصمت وعناصر في القائمة التي تفشل في التحويل إلى نوع المعلمة النوع العام الذي توفره.

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