我知道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. Linq Any返回true,尽管集合中的所有值都是假的
- 2. 的LINQ查找集合中的所有项目从其他集合
- 3. 与集合中的所有单词匹配的所有项目
- 4. 关系代数检查所有项目是否属于集合
- 5. LINQ to Entities问题 - 子集合中所有项目出现在另一个集合中的所有对象?
- 6. 检查集合中的所有项目是否与Scala中的谓词匹配
- 7. 是否有Linq操作来确定集合中是否有一组属性具有相同值的项目?
- 8. 获得所有项目的集合mapWithKeys
- 9. 确定集合中的所有项目是否满足已建立的标准
- 10. 是否有.net框架方法从集合中的所有项目的属性生成集合?
- 11. 列表框中的选定项目是否有ASP.NET集合?
- 12. LINQ查找集合中的最新项目,其中有一个集合!
- 13. 如何强制NHibernate不更新集合中的所有对象
- 14. 是否可以强制回溯所有选项?
- 15. 如何获取文档集合中的所有嵌入项目?
- 16. 复制集合中的某些项目
- 17. 检查列表中的所有项目是否相同
- 18. WPF绑定到集合中的所有项目的属性
- 19. linq框架增强项目
- 20. JPA ManyToMany加注为不加载集合中的所有项目
- 21. LINQ从集合A中选择不在集合B中的项目
- 22. 在LINQ中混合Any()和First()?
- 23. FirstOrDefault是否返回对集合中项目的引用或值?
- 24. 如何从集合B中删除集合A中的单个集合项目的所有实例?
- 25. 强制JPA查询返回所有集合/字段
- 26. 如何检查集合中的所有项目是否具有特定的属性值?
- 27. Linq在htmlhelper中获取集合中的项目
- 28. 集合中的项目总和
- 29. linq如何从父集包含其他集合中的子项目的集合中选择父项
- 30. 将LinQ结果强制类型化集合的问题
为什么你甚至会怀疑演员阵容? – 2013-02-20 16:49:26
我怀疑你正在使用'cast'来表示除了普遍接受的含义之外的东西。你认为这意味着什么? – AakashM 2013-02-20 16:50:46