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)?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top