Von den folgenden 2 Möglichkeiten, eine Sammlung aufzuzählen, sollte man gegenüber dem anderen OR vorgezogen werden, sind beide in Bezug auf die Leistung gleich (dh, ToList() Konvertierung ist in der zweiten Ansatz beteiligt)Verschiedene Möglichkeiten, eine Sammlung zu nummerieren
foreach(SomeType st in Collection)
{
//Do something
}
Collection.OfType<SomeType>.ToList().ForEach()
Gibt es einen anderen Weg (außer die Verwendung von Wiederwahl)?
EDIT
Wie wäre dieses Szenario?
class SomeType : IMyType
{
}
class OtherType : IMyType
{
}
class SomeCollection<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable
{
}
Anbetracht MyTypes ist eine Eigenschaft in einer Klasse mit Typ SomeCollection<IMyType>
die folgenden zwei Ansätze gleich?
foreach(IMyType mt in MyTypes)
{
if(IMyType is SomeType)
return;
}
ODER
if(MyTypes.OfType<SomeType>.Any())
return;
Welche verwendet werden sollte, hängt wirklich davon ab, was Sie versuchen zu tun. – Oded
Abhängig von der Sammlung (und wenn sie CollectionBase erweitert) können Sie einfach auf die IList-Schnittstelle und die ForEach-Methode verweisen und darüber iterieren (keine Konvertierung in eine Liste erforderlich). –
@Brad Christie IList unterstützt nicht ForEach, Liste tut. –