Ho una classe con un membro Predicate
che vorrei utilizzare in un'espressione Linq:Conversione di un predicato <T> ad un Funz <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;
}
Come ho letto che "Predicate<T>
è [...] completamente equivalente a Func<T, bool>
"(see here), mi aspetto che funzioni, poiché All
accetta come argomento: Func<Instrument, bool> predicate
.
Tuttavia, ottengo l'errore:
Argument 2: cannot convert from 'System.Predicate<MyNamespace.Instrument>' to 'System.Type'
C'è un modo per convertire il predicato ad un argomento che questa funzione sarà ingoiare?
Aha, funziona, grazie! Quindi Predicato e Func non sono chiaramente ** completamente ** uguali, almeno non semanticamente parlando! –
Yellow
Sono semanticamente uguali. Solo non sintatticamente. –
Oops, questo è quello che intendevo. :-) – Yellow