Primero que nada, deberemos chequear que la opción Option Infer esté habilitada en nuestro proyecto. Para ello iremos a Propiedades del proyecto, en la pestaña Compilación. Por supuesto, al principio podremos tener algunos problemas si también utilizamos la opción Option Srtict, pero es cuestión de costumbre.
Volviendo a los tipos anónimos, al escribir una sentencia en LINQ, podremos definirnos una variable sin tipo y a pesar de ello tener intellisense.
Por ejemplo:
//C#
var hola = from x in myDdatacontext.table1
where x.id > 20
select x;
'VB.Net
Dim Hola = From x in MyDataContext.Table1 _
Where x.Id > 20 _
Select x
En realidad nuestras variables Hola, tomarán, en este caso el tipo IQueriable(Of Table1) con lo cual podremos ir navegando a través de los items devueltos por la consulta.
Suponiendo que Table1 tiene los campos Id, Nombre y Apellido, al escribir
x.
el intellisense nos mostrará como proiedades Id, Nombre y Apellido. Y de igual manera, cuando recorremos nuestras variables de tipos anónimos podremos ver el intellisense y acceder a cada propiedad, por ejemplo:'VB.Net
For Each x in Hola
Console.Writeline(String.Format("ID: {0} Nombre: {1} Apellido: {2}", x.Id, x.Nombre, x.Apellido))
Next
Otra forma, sería si quisiéramos devolver el primer elemento del resultado de la consulta, entonces:
' VB.Net
Return Hola.First