У меня объявлен следующий словарь:
private readonly Dictionary<int, Image> dictionary;
И у меня есть метод, который вызывает ошибку компилятора:
public IQueryable<Image> Find(Func<Image, bool> exp)
{
return dictionary.Single(exp);
}
Я получаю ошибку:
Error 1 The type arguments for method 'System.Linq.Enumerable.Single<TSource>(System.Collections.Generic.IEnumerable<TSource>, System.Func<TSource,bool>)' cannot be inferred from the usage. Try specifying the type arguments explicitly. C:\work\MSD-AIDS-Images\MSD-AIDS-Images-Test\TestImageRepository.cs 34 30 MSD-AIDS-Images-Test
Я пытался погуглить, кажется, я не могу найти ничего определенного в том, что я делаю неправильно
Редактировать - это утро понедельника на работе.
Я хотел поставить «где», а не один
Редактировать 2!
Хорошо, код теперь такой:
public IQueryable<Image> Find(Func<Image, bool> exp)
{
return dictionary.Values.Where(exp);
}
Теперь я получаю следующую ошибку:
Error 1 Cannot implicitly convert type 'System.Collections.Generic.IEnumerable<MSD_AIDS_Images_Data.Image>' to 'System.Linq.IQueryable<MSD_AIDS_Images_Data.Image>'. An explicit conversion exists (are you missing a cast?) C:\work\MSD-AIDS-Images\MSD-AIDS-Images-Test\TestImageRepository.cs 34 20 MSD-AIDS-Images-Test
В качестве FYI существует метод реализации интерфейса, декларация которого:
IQueryable<T> Find(Func<T, bool> exp);
Это сложнее, чем должно быть!