he declarado el diccionario siguiente:Lambda "no puede ser inferido a partir del uso"
private readonly Dictionary<int, Image> dictionary;
Y tengo un método, que está causando un error de compilación:
public IQueryable<Image> Find(Func<Image, bool> exp)
{
return dictionary.Single(exp);
}
El error que consigo es:
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
he intentado googlear alrededor, me parece que no puede encontrar nada definitivo en cuanto a lo que estoy haciendo mal
Editar - Esto es el lunes por la mañana en el trabajo.
que significaba poner "donde", no solo
Editar 2!
Ok, el código es ahora esto:
public IQueryable<Image> Find(Func<Image, bool> exp)
{
return dictionary.Values.Where(exp);
}
Ahora me sale el siguiente error:
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
Como un FYI, el método no es para implementar una interfaz, la declaración de es decir:
IQueryable<T> Find(Func<T, bool> exp);
¡Esto se ha complicado más de lo debido!
Como ya he dicho - cambie el tipo de retorno a IEnumerable –