Здравствуйте, я пытаюсь создать систему фильтров для списка.C# lambda convert
public void filter<T, E>(String fieldName, List<T> list, Func<T, E> rule)
{
IList<FilterDto> filters = GetFilter(fieldName);
foreach (FilterDto filter in filters)
{
if (filter != null)
{
if (filter.valueType == ValueType.NUMERIC)
{
list.Remove(this.filter(fieldName, Convert.ToDouble(o => rule(o))));
}
else if (filter.valueType == ValueType.DATE)
{
}
else if (filter.valueType == ValueType.TEXT)
{
}
else
{
Log("Unkown filter comparsion");
}
}
}
}
На этой линии:
list.Remove(this.filter(fieldName, Convert.ToDouble(o => rule(o))));
я получаю сообщение об ошибке:
Error CS1660: Cannot convert lambda expression to type 'bool' because it is not a delegate type
я должен бы сделать реальную фильтрацию на что-то методы, как, что:
public bool filter(String fieldName, double? value)
public bool filter(String fieldName, int? value)
public bool filter(String fieldName, Date? value)
Что вы 'правило)' метод (? Что он возвращает? –
Редактировать мой вопрос :) – Flo