لا convertall لربط القائمة ؟
-
09-09-2019 - |
سؤال
هل لدى أي شخص طريقة تمديد لتحويل أنواع بسرعة في 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>
طريقة التمديد التي ستنتقل بصمت وعناصر في القائمة التي تفشل في التحويل إلى نوع المعلمة النوع العام الذي توفره.
لا تنتمي إلى StackOverflow