Я полагаю, что правильная замена делегата была бы:
if (((DataTable)dgvAssignedRpm.DataSource).AsEnumerable().Where(
delegate(DataRow row) {
return (row.Field<long>("FK_RPM_BTN_SETTING_ID") == objRpmButtonHolder.RpmSettingId.Count() > 1);
}))
{
List<DataRow> listPkgBtnSettings = SearchForExistingSettingId();
}
Но для меня утро, так что прости меня, если я немного не в себе.
Какое желание?дать DataRow в качестве параметра и bool для возврата.Вы можете просто добавить что-нибудь в лямбду или делегат, если они соответствуют этим запросам.
На ваш вопрос, почему он запрашивает Func <> и как он работает.Вы используете оператор LINQ, поэтому я нашел вам ссылку на это, которая, вероятно, может объяснить это лучше меня: http://blogs.msdn.com/b/mirceat/archive/2008/03/13/linq-framework-design-guidelines.aspx
Но да, последний тип здесь в Func <> это то, что онвозвращается.(Тем не менее, я все же могу рекомендовать использовать лямбда-выражение, так как оно довольно чистое, аккуратное и лучше всего подходит для Func <>.
(Кроме того, посмотрите, что дает вам интеллект, когда вы пишете "new Func <.... ", это должно дать вам хорошее представление о том, что Func хочет и может сделать!) </p>
Надеюсь, я вам помог.