Quelqu'un at-il une méthode d'extension pour convertir rapidement les types dans un LinkedList<T>
en utilisant un Converter<TInput, TOutput>
?Non ConvertAll pour LinkedList <T>?
Je suis un peu surpris, où est le ConvertAll<TOutput>(delegate)
?
Quelqu'un at-il une méthode d'extension pour convertir rapidement les types dans un LinkedList<T>
en utilisant un Converter<TInput, TOutput>
?Non ConvertAll pour LinkedList <T>?
Je suis un peu surpris, où est le ConvertAll<TOutput>(delegate)
?
L'équivalent ConvertAll
dans les méthodes d'extension pour Linq est appelé Select
!
var result = myLinkedList.Select(x => FancyCalculationWith(x))
Cela dépend de ce que vous voulez en sortir, mais vous pouvez utiliser ensuite coulé à travers le énumèrent IEnumerable résultant.
public class Foo
{
...
}
public class Bar : Foo
{
...
}
var list = new LinkedList<Bar>();
.... make list....
foreach (var foo in list.Cast<Foo>())
{
...
}
Comme tvanfosson says il est possible de Cast<T>
mais si vous voulez éviter un InvalidCastException
vous pouvez utiliser la méthode d'extension OfType<T>
qui passera sous silence et les éléments dans la liste qui échouent la conversion au type du type générique paramètre que vous fournissez.
+1 Sélectionnez == "map" (fonction d'ordre supérieur) –
En supposant, bien sûr, que LinkedList implémente IEnumerable . Je ne suis pas familier avec LinkedList –
(La différence étant que List.ConvertAll est en mesure de pré-allouer un tampon de la bonne taille bien sûr, car il connaît la taille existante.) –