2009-07-03 8 views

Répondre

1
MyTable 
.Where(m => m.Res < 4) 
.OrderBy(m => m.Res) 
.Select(m => new {Id, Res = m.Distance - 4}); 

... où 4 est votre someOtherValue

+1

Pourquoi Res serait une colonne disponible, il a seulement été créé comme un alias dans le select? – Jacob

+0

Vous venez de retourner un type anonyme, avec seulement les champs que vous voulez ... dans ce cas, l'Id et une colonne personnalisée appelée Red –

2

Si vous préférez mot-style LINQ, il ressemblerait à quelque chose comme ceci:

from x in theTable 
where x.Distance < someOtherValue + someValue 
orderby x.Distance 
select new { x.Id, Res = x.Distance - someValue } 
+1

vous pouvez utiliser l'instruction let pour éviter de calculer x.Distance - someValue deux fois, à savoir créez l'alias avant d'évaluer la condition where –