我已經看到了一次又一次的API(特別是在.NET框架中),當Predicate<TObject>
看起來是一個完美負責的選項時,它使用Func<TObject, bool>
。什麼好原因可能是一個API設計人員這樣做?Func <TObject,bool>或謂詞<TObject>?
8
A
回答
7
在LINQ,Func<T, bool>
被用於諸如Where
從而使其他重載這需要索引以及元素是一致的:
IEnumerable<T> Where(IEnumerable<T> source, Func<T, bool> predicate)
IEnumerable<T> Where(IEnumerable<T> source, Func<T, int, bool> predicate)
我個人覺得這個名字Predicate
是更具描述性的,所以那裏是像上面的不連貫問題,我會使用它的情況。請注意,只需要瞭解有關Action
和Func
委託類型的內容就可以這麼說了...
2
與其他LINQ的一致性?
(該「異常」已經注意到,但有匿名委託和lambda功能,它沒有什麼區別,因此幾乎從來沒有需要注意的差異。)
0
的Func鍵<>代表是「新「指定lambda表達式/委託給方法的方式。然而,只有一組方便的代表,如果有一個更具體的代表做同樣的事情,那麼去那。
在您的例子我總是去作謂語<>,因爲它是更自我記錄(假設謂詞是你想要的)
相關問題
- 1. 轉換表達<Func鍵<DTOUser,布爾>>謂詞來表達<Func鍵<User, bool>>謂詞
- 2. 約Func鍵<TElement,bool>的謂詞
- 3. 將表達式轉換<Func鍵<TProperty>>到Func鍵<TObject的,TProperty> TObject的地方被稱爲
- 4. 表達<Func鍵<T, bool>>謂詞兩種類型
- 5. 如何從Expression <Func <MyClass,string >>動態創建表達式<Func <MyClass,bool >>謂詞?
- 6. 轉換函數功能<TSource,布爾>謂詞來Func鍵<TDest, bool>謂詞
- 7. 請解釋System.Linq.Enumerable.Where(Func <T,int,bool>謂詞)
- 8. C# - 委派謂詞<T>
- 9. 如何使用此公共IEnumerable <T>查找(表達式<Func <T, bool>>謂詞)?
- 10. 如何將表達式<Func <T, bool>>轉換爲謂詞<T>
- 11. Func <Owned<T>> vs Func <T> dependency
- 12. 溫莎城堡的IoC,如何IBaseService <TObject>註冊BaseService <TObject的,TRepository>
- 13. 如何將一個簡單的viewmodel轉換爲Func <T,bool>謂詞?
- 14. 謂詞<T>方法equals()方法
- 15. 如何撰寫Linq表達式?即Func <Exp <Func<X, Y>>,Exp <Func<Y, Z>>,Exp <Func<X, Z> >>
- 16. 表達<Func鍵<in T, bool>>或表達<Func鍵<TBase,bool>>表達式<Func<T,bool>>轉換器
- 17. 轉換表達<Func鍵<FromType>>以表達<Func<ToType>>
- 18. IList <T>。查找索引(Int32,謂詞<T>)
- 19. 如何使用Dictionary.Values.Where <TSource>(Func <TSource,bool>謂詞)來查找所需的值?
- 20. 檢索的性能完整的命名空間中表達<Func<>引用>謂詞
- 21. 有關擴展的幫助Where()(此IEnumerable <CUSTOMERRow>源,Func <CUSTOMERRow,bool>謂詞)
- 22. 10如何從表達式<Func <T, bool>>謂詞中獲取屬性,運算符和值?
- 23. 你可以傳入一個Expression <Func <T, bool>>謂詞到一個linq Where語句中嗎?
- 24. 詞典<X, Func<Y>>從其中的一個Func <>訪問包含字典
- 25. 謂詞<Bool>,毫無意義或有用嗎?
- 26. Task.Run和Func <>
- 27. 使用Func <>
- 28. 謂詞和排序依據,Func鍵
- 29. 不兼容類型:謂詞<CAP#1>不能轉換爲謂詞<?超級CAP#2>
- 30. 德爾福:RTTI和TObjectList <TObject>
是的,但是爲什麼LINQ會這樣做? – 2009-04-18 09:21:13
我也不認爲與LINQ其餘部分的「一致性」是好的原因。 – 2009-04-18 09:21:53