Error del compilador CS1941
Actualización: noviembre 2007
Mensaje de error
El tipo de una de las expresiones de la cláusula 'cláusula' es incorrecto. No se pudo inferir el tipo en la llamada a 'método'.
The type of one of the expressions in the 'clause' clause is incorrect. Type inference failed in the call to 'method'.
La inferencia de tipo en las expresiones de consulta se deriva del tipo de los elementos en los orígenes de datos.
Para corregir este error
- Si no está claro por qué se produce el error, examine detenidamente la consulta y localice el tipo del resultado de cada cláusula desde el origen de datos hasta el punto en el que se produce el error.
Ejemplo
El código siguiente genera el error CS1941 porque se solicita al operador equals que compare el elemento int con uno string.
// cs1941.cs
using System.Collections;
using System.Linq;
class Test
{
static int Main()
{
var nums = new[] { 1, 2, 3, 4, 5, 6 };
var words = new string[] { "lake", "mountain", "sky" };
IEnumerable e = from n in nums
join w in words on n equals w // CS1941
select w;
return 0;
}
}
El método en el que se produce un error de la inferencia de tipos es aquel al que se convierte la cláusula de consulta en tiempo de compilación.
Vea también
Conceptos
Expresiones de consultas con LINQ (Guía de programación de C#)