【发布时间】:2011-11-08 00:07:14
【问题描述】:
我有一个方法应该检查集合中是否有一个元素对某些谓词(作为 Func 给出)成立。
public bool ExistsUnique(Func<T, bool> p)
{
var tempCol = from i in MyCollection where p(i) select i;
return (tempCol.Count() == 1);
}
这样做的问题是,当第二个元素也适用于谓词时 找到(例如,集合中存在两个相同的字符串)计数仍然是 1。这意味着它要么覆盖第一个元素,要么永远不会添加第二个元素,因为它已经存在。
关于如何解决此方法的任何想法? 谢谢 /彼得
【问题讨论】:
-
我怀疑this SO question 它的答案可能会对您有所帮助。
标签: c# linq collections predicate