Ich habe irgendwo hier auf SO eine Methode gesehen, um Elemente, die von einer foreach-Schleife zurückgegeben werden, auf einen bestimmten Typ zu beschränken, wobei, wenn ich mich richtig erinnere, LINQ-Erweiterungen auf IEnumerable und ein Lambda für die Typprüfung verwendet werden. Ich kann es nicht wieder finden, kann jemand vorschlagen, wie dies erreicht wurde?
Antworten
Zu viele Anzeigen?
laktak
Punkte
52075
Sie könnten dies mit einem Aufruf der Erweiterungsmethode Where wie folgt tun:
foreach(var x in theCollection.Where(i => i.GetType() == typeof(DesiredType))
{
// Do something to x
}
Diese Funktion ist jedoch so nützlich, dass sie in das .NET-Framework integriert ist, worauf Chris oben hinweist. IEnumerable hat eine Erweiterungsmethode namens OfType, dokumentiert aquí .
Um sie zu verwenden, müssen Sie etwa so vorgehen:
foreach(var x in theCollection.OfType<int>())
{
// Do something to x
}