我有一個方法,應該檢查集合中是否只有一個元素對某些謂詞(作爲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