我有一個構件,其Predicate
我想在一個LINQ表達式中使用的一類:轉換一個謂語<T>到函數求<T, bool>
using System.Linq;
class MyClass
{
public bool DoAllHaveSomeProperty()
{
return m_instrumentList.All(m_filterExpression);
}
private IEnumerable<Instrument> m_instrumentList;
private Predicate<Instrument> m_filterExpression;
}
正如我讀「Predicate<T>
是[...]完全相當於Func<T, bool>
「(see here),我希望這個工作,因爲All
作爲參數:Func<Instrument, bool> predicate
。
但是,我得到的錯誤:
Argument 2: cannot convert from 'System.Predicate<MyNamespace.Instrument>' to 'System.Type'
有沒有辦法謂詞轉換成一個參數,這個函數會吞噬?
啊哈,這工作,謝謝!所以Predicate和Func 顯然不是**完全相同,至少在語義上講不是! –
Yellow
2014-08-27 16:05:43
它們在語義上是相同的。只是不在語法上。 – 2014-08-27 16:24:42
糟糕,這就是我的意思。 :-) – Yellow 2014-08-28 08:02:30