Wie soll ich das in .NET 2.0 verwenden?LINQ in .NET 2.0 konvertieren
[DataObjectMethod(DataObjectMethodType.Select)]
public IEnumerable<OperatorField> FindByType(String type)
{
// return only selected type
return (from ce in this.OperatorFields where ce.Type == type select ce).ToList();
}
Ich benutze dies in einem 3,5-Projekten, aber jetzt bin ich das Hinzufügen neuer Funktionalität zu einem alten Projekt, das kann ich nicht (zu diesem Zeitpunkt) auf 3,5 aktualisieren.
Ich habe gerade dies:
[DataObjectMethod(DataObjectMethodType.Select)]
public IEnumerable<OperatorField> FindByType(String type)
{
// return only selected type
//return (from ce in this.OperatorFields where ce.Type == type select ce).ToList();
List<OperatorField> r = new List<OperatorField>();
foreach (OperatorField f in this.OperatorFields)
if (f.Type == type)
r.Add(f);
return r;
}
Wenn Sie einen Blick auf die IL nehmen, gibt es wirklich einen Unterschied? Kannst du die Perf von beiden messen und sehen, ob der eine oder der andere schneller ist? – StingyJack
2 min und 4 identische Antworten :) – cwap
@StingyJack: Die IL wird überhaupt nicht ähnlich sein, da die linq-Version Aufrufe an 'System.Linq.Enumerable.Where()', 'System.Linq.Enumerable haben wird. Wählen Sie() 'und' System.Linq.Enumerable.ToList() ', während die andere Version' IEnumerable.GetEnumerator() 'aufruft und das Ergebnis iteriert. –