No estoy seguro acerca de C#.
Sé, sin embargo, que puede escribir el código VB LINNQ sin las bibliotecas 3.5 siempre que use el compilador VS 2008 para apuntar al marco 2.0.
Sin embargo, tendrá que implementar algunos de los métodos LINQ usted mismo.
LINQ utiliza una transformación sintáctica para traducir consultas en código ejecutable.Básicamente, se tomará código como este:
dim q = from x in xs where x > 2 select x*4;
y convertirlo en código como este:
dim q = xs.where(function(x) x > 2).select(function(x) x * 4);
Para la funcionalidad de LINQ que se incluye con el marco 3.5, esos métodos se implementan como métodos de extensión en ya sea IEnumerable o IQueryable (también hay un montón de métodos que también funcionan en conjuntos de datos). métodos de extensión IEnumerable
El defecto se definen en System.Linq.Enumerable y se ven así:
<Extension()>
public function Select(of T, R)(source as IEnumerable(of T), transform as Func(of T, R)) as IEnumerable(of R)
'do the transformation...
end function
Los métodos de extensión IQueryable toman expresiones árboles como argumentos, en lugar de lambdas. Son similares a esto: las versiones de árboles
<Extension()>
public function Select(of T, R)(source as IQueryable<T>, transform as Expression(of Func(of T, R))
'build a composite IQueryable that contains the expression tree for the transformation
end function
La expresión que permiten obtener una representación en árbol de las expresiones proporcionadas a las cláusulas que a continuación se pueden utilizar para generar código SQL (o lo que sea otra cosa que desee).
Probablemente se podría crear su propia versión de LINQ a objetos en aproximadamente un día o dos. Todo es bastante directo.
Si desea utilizar DLINQ, entonces las cosas serían un poco más difícil.
redistribuyendo System.Core.dll es una violación de la licencia de Microsoft – Lucas
después de que construí y corrí, no hay nada en la carpeta bin excepto la carpeta de depuración. :(Estoy construyendo aplicación de consola en .Net 4.0 visual studio 2010. –
@JonasT Si está en .NET 4.0, entonces esto no se aplica a usted en absoluto, ya que se trata de .NET 2.0 con LINQ. No dude en solicitar una pregunta separada, dando detalles sobre su configuración –