2012-03-28 70 views
4

我總是混淆AsQueryable,AsEnumerable。 我應該什麼時候使用它們?我應該使用AsQueryable來創建一個LINQ語句來根據xml或AsEnumerable的屬性來創建一個過濾器嗎?如何爲XmlAttributeCollection編寫LINQ語句?

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

檢查這個主題 - http://stackoverflow.com/questions/2876616/returning-ienumerablet-vs-iqueryablet – Stecya 2012-03-28 12:52:14

+0

你能否在你發佈的代碼片段中添加更多關於你想要實現的細節? – 2012-03-29 17:33:30

回答

2

的主要區別在於,對於IQueryable的定義的擴展方法採取表達對象,而不是函數功能對象,這意味着其接收到的代表是表達式樹,而不是調用方法。 IEnumerable的是偉大的與內存中集合工作,但IQueryable的允許遠程數據源,如數據庫或Web服務。