我知道Linq的Any()
擴展名用於確定一個枚舉是否至少有一個元素,它只會消耗一個元素。但實際上這是如何工作的?它是否必須首先將所有物品放在可枚舉物體中,還是一次只投出一個物體,從第一個開始並停在那裏?LinQ Any()是否強制集合中的所有項目?
回答
Any()
適用於IEnumerable<T>
因此不需要轉換。它的實現非常簡單,它只是遍歷枚舉並查看它是否可以找到任何匹配指定條件的元素。
這對於需要一個函數的重載來說,另一個無參數重載,同時分享一個名字,行爲完全不同。 – Servy 2013-02-20 16:54:17
是的。並非所有版本都有謂詞。但總的想法是一樣的:是否有任何元素,可選地匹配給定的標準?無論哪種情況,數據都不需要轉換。 – 2013-02-20 16:55:57
而且不帶謂詞的版本基本上是'Any(x => true)'的墊片。 – GalacticCowboy 2013-02-20 17:03:54
簡單實現的樣子:
public bool Any<T>(IEnumerable<T> list)
{
using (var enumerator = list.GetEnumerator())
{
return enumerator.MoveNext();
}
}
所以,沒有任何鑄件所需
代碼公共靜態類Enumerable
:
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;
}
public static bool Any<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate) {
if(source==null) {
throw Error.ArgumentNull("source");
}
if(predicate==null) {
throw Error.ArgumentNull("predicate");
}
foreach(TSource local in source) {
if(predicate(local)) {
return true;
}
}
return false;
}
沒有見過鑄造,但通用的。
- 1. `Any()`強制執行linq嗎?
- 2. 檢查具有某個值的集合中的所有項目是否都在Linq的另一個集合中?
- 3. Linq Any返回true,儘管集合中的所有值都是假的
- 4. LINQ:目標數組不足以複製集合中的所有項目。
- 5. 的LINQ查找集合中的所有項目從其他集合
- 6. 與集合中的所有單詞匹配的所有項目
- 7. 關係代數檢查所有項目是否屬於集合
- 8. LINQ to Entities問題 - 子集合中所有項目出現在另一個集合中的所有對象?
- 9. LINQ:轉換集合中的項目
- 10. 檢查集合中的所有項目是否與Scala中的謂詞匹配
- 11. 是否有Linq操作來確定集合中是否有一組屬性具有相同值的項目?
- 12. 獲得所有項目的集合mapWithKeys
- 13. 確定集合中的所有項目是否滿足已建立的標準
- 14. 是否有.net框架方法從集合中的所有項目的屬性生成集合?
- 15. 列表框中的選定項目是否有ASP.NET集合?
- 16. LINQ查找集合中的最新項目,其中有一個集合!
- 17. 如何強制NHibernate不更新集合中的所有對象
- 18. 是否可以強制回溯所有選項?
- 19. 如何獲取文檔集合中的所有嵌入項目?
- 20. 複製集合中的某些項目
- 21. 是否有可能檢測出所選項目是否是LINQ-to-SQL中的第一項?
- 22. C#集合是否總是強制執行?
- 23. 檢查列表中的所有項目是否相同
- 24. WPF綁定到集合中的所有項目的屬性
- 25. linq框架增強項目
- 26. LINQ從集合A中選擇不在集合B中的項目
- 27. JPA ManyToMany加註爲不加載集合中的所有項目
- 28. mongokit刪除集合中的所有項目
- 29. 在LINQ中混合Any()和First()?
- 30. FirstOrDefault是否返回對集合中項目的引用或值?
爲什麼你甚至會懷疑演員陣容? – 2013-02-20 16:49:26
我懷疑你正在使用'cast'來表示除了普遍接受的含義之外的東西。你認爲這意味着什麼? – AakashM 2013-02-20 16:50:46