Kein Konvertall für LinkedList ?
-
09-09-2019 - |
Frage
Hat jemand eine Erweiterungsmethode, um die Typen in a schnell umzuwandeln LinkedList<T>
Verwendung einer Converter<TInput, TOutput>
?
Ich bin ein bisschen überrascht, wo ist das ConvertAll<TOutput>(delegate)
?
Lösung
Das ConvertAll
Äquivalent in Erweiterungsmethoden für LINQ wird genannt Select
!
var result = myLinkedList.Select(x => FancyCalculationWith(x))
Andere Tipps
Hängt davon ab, was Sie daraus herausholen möchten, aber Sie können Cast verwenden und dann durch das resultierende iEnumerable aufzählen.
public class Foo
{
...
}
public class Bar : Foo
{
...
}
var list = new LinkedList<Bar>();
.... make list....
foreach (var foo in list.Cast<Foo>())
{
...
}
Wie TVANFOSSON sagt es ist möglich zu Cast<T>
Aber wenn Sie eine vermeiden möchten InvalidCastException
du kannst den ... benutzen OfType<T>
Erweiterungsmethode, die stillschweigend übergeht und Elemente in der Liste, die die Konvertierung in den Typ des von Ihnen lieferenden Parameters des generischen Typs nicht bestehen.