我有一个方法,应该检查集合中是否只有一个元素对某些谓词(作为Func给出)为真。LINQ c#集合中的唯一元素
public bool ExistsUnique(Func<T, bool> p)
{
var tempCol = from i in MyCollection where p(i) select i;
return (tempCol.Count() == 1);
}
与此问题是,当其也适用于谓词 真正的第二元件被发现(例如,集合中存在两个相同的字符串的)计数仍为1这意味着它要么覆盖第一个元素或从不添加第二个元素,因为它已经存在。
任何想法如何我可以修复这种方法? thx /Peter
我怀疑[这个问题](http://stackoverflow.com/questions/2740109/can-someone-please-explain-this-lazy-evaluation-code)及其答案可能会帮助你。 – ssamuel