como posicionarse en una fila con LinQ

tema enviado por rafad en Visual Basic .NET
tema iniciado el 10/10/2012
Tengo una duda sobre LinQ, y es la siguiente: Después de obtener las filas de una Tabla (en este caso de la tabla de máquinas) quisiera poder saber cómo me puedo posicionar en una fila determinada ‘Obtiene los registros de la tabla Maquinas. Public Function GetTbMaquinas(ByVal empresa As Integer) As IQueryable(Of tbMaquinas) Try Dim BD = DataContext_ElGre() Dim SQL = From Maquina In BD.tbMaquinas Where Maquina.idEmpresa = empresa Order By Maquina.Codigo Ascending Select Maquina Return SQL Catch ex As Exception Return New tbMaquinas() End Try End Function Con esta funcion recorro la tabla para buscar el indice en que se encuentra el codigo de la maquina. 'Busca el registro determinado por el codigo de la Maquina Public Function GetCodMaquina(ByVal Valor As Object) As Integer Dim indice As Integer = -1 Dim BD = DataContext_ElGre() Dim SQL = (From rg In BD.tbMaquinas Where rg.idEmpresa = empresa Order By rg.Codigo Ascending Select rg).ToList TotReg = SQL.Count indice = SQL.Contains(Valor) For i = 0 To TotReg - 1 'Si encontramos el codigo de la maquina, asignamos el indice y nos 'salimos del bucle If SQL.ToList.Item(i).Codigo = Valor Then indice = i Exit For End If Next Return indice End Function ¿Se puede obtener este indice sin tener que hacer un bucle?