2010-04-23 27 views
12
no trabajar
 var stuff = ctx.spReport(); 
     var StuffAssembled = new List<ReportCLS>(); 
     var val = new List<ReportCLS>(); 
     foreach (var item in stuff) 
     { 
      StuffAssembled.Add(new ReportCLS(item)); 

     } 

     val.Add(StuffAssembled.First()); 

sigue echandolista genérica .First LINQ

System.Collections.Generic.List 'no contiene una definición para 'Primera' y ningún método de extensión 'Primera' aceptar un primer argumento de tipo' System.Collections.Generic.List 'podría encontrarse (¿falta una directiva using o una referencia de ensamblado?)

¿Qué está pasando mal?

Además, ¿cómo lo arreglo?

Gracias

Respuesta

39

se debe añadir esto a sus declaraciones: using

using System.Linq; 
+1

Eso fue todo ... Intellisense no estaba sugiriendo que lo agregara tampoco. y seguí viendo (System.Data.Linq) y pensé que estaba bien. – MarkKGreenway

6

Algunas cosas a comprobar:

  • Usted está apuntando .NET 3.5 o superior (o' re usando LINQBridge)
  • Tiene una referencia al ensamblado System.Core
  • Usted tiene una directiva using para System.Linq

Básicamente lo que sugiere el mensaje de error ...

EDIT: Además, su código actual podría ser mucho más simple:

var stuff = ctx.spReport(); 
var stuffAssembled = stuff.Select(x => new ReportCLS(x)).ToList(); 
var val = new List<ReportCLS> { stuffAssembled.First() }; 

Además, si usted es en realidad usando un List<T> entonces también podría usar list[0] en lugar de list.First() :) Ambos lanzarán una excepción si la lista está vacía, aunque la excepción diferirá er, por supuesto.

1

Este error de tiempo de compilación por lo general se produce cuando se

  • olvidó incluir importaciones para extensiones de LINQ (utilizando System.Linq)
  • olvidó de referencia de ensamblado con extensiones de LINQ
  • dirigidos 2,0 marco, que no incluye LINQ por defecto