2012-03-28 7 views
4

Ich verwechsle immer AsQueryable, AsEnumerable. Wann sollte ich sie verwenden? Soll ich AsQueryable verwenden, um eine LINQ-Anweisung zu erstellen, um einen Filter nach dem Attribut xml oder AsEnumerable zu erstellen?Wie schreibe ich LINQ-Anweisung für XmlAttributeCollection?

[Serializable] 
public class LogHandler : IConfigurationSectionHandler 
{ 
    public object Create(object parent, object configContext, XmlNode section) 
    { 
     XmlAttributeCollection v = section.Attributes; 
    } 
} 
+1

Überprüfen Sie diesen Thread - http://stackoverflow.com/questions/2876616/returning-ienumerablet-vs-iqueryablet – Stecya

+0

Könnten Sie weitere Details zu dem hinzufügen, was Sie in dem von Ihnen geposteten Code-Snippet erreichen möchten? –

Antwort

2

Der Hauptunterschied ist, dass die Erweiterungsmethoden definiert für IQueryable Expression nehmen Objekte anstelle von Func Objekte, das heißt der Beauftragte sie empfängt ein Ausdrucksbaum anstelle einer Methode aufzurufen. IEnumerable ist für mit In-Memory-Sammlungen arbeiten, aber IQueryable ermöglicht eine ferne Datenquelle, wie eine Datenbank oder Web-Service.