| 

.NET C# Java Javascript Exception

1
Wie überprüft ihr eine Liste, ob sie Elemente enthält? Ich persönlich finde die Linq Syntax schöner.
"klassisch"
liste.count > 0

Linq
liste.any()

Ich hoffe ich nerve niemanden mit meinen Linq fragen :P
News:
15.09.2009
Lugi 45 3
1 Antwort
0
Bei allem was ICollection<T> implementiert über die Count-Eigenschaft -> ist ein O(1) Vorgang mit nur einem Befehl.

Für die Any-Erweiterungsmethode sind mehr Schritte nötig die unnötig sind ;) Diese Methode hat folgenden Code (ist im Prinzip auch O(1) aber aufwändiger):
public static bool Any<TSource>(this IEnumerable<TSource> source)
{
if (source == null)
throw Error.ArgumentNull("source");

using (IEnumerator<TSource> enumerator = source.GetEnumerator())
if (enumerator.MoveNext())
return true;

return false;
}


Der Unterschied wird meist vernachlässigbar klein sind und daher ist es egal. Was nicht verwendet werden sollte ist in diesem Fall die Count-Erweiterungsmethode denn diese würde über die ganze Enumeration iterieren (es sei denn es ist eine ICollection<T>) und das ist bei großen Listen unnötiger Aufwand ;)
15.09.2009
gfoidl 9,0k 3 5

Stelle deine .net-Frage jetzt!