2010-12-16 9 views
6

¿Estoy creando un tipo anónimo compuesto y me pregunto si puedo hacer referencia al campo YesPercent para NoPercent?Propiedades de tipo anónimo de referencia

var test = (from p in db.users 
      group p by p.ID into g 
      select new 
      { 
       ID = g.Key, 
       Frequency = g.Count(), 
       Question = g.FirstOrDefault().Question, 
       YesPercent = 50*564/32.5, 
       NoPercent = YesPercent - 10 
       }) 
+0

¿Por qué no lo ejecutas y lo ves por ti mismo? –

Respuesta

9

cambiar un poco

var test = (from p in db.users 
      group p by p.ID into g 
      let yesPercent = 50*564/32.5 // this variable will be available in your select 
      select new 
      { 
       ID = g.Key, 
       Frequency = g.Count(), 
       Question = g.FirstOrDefault().Question, 
       YesPercent = yesPercent, 
       NoPercent = yesPercent - 10 
       }) 

que se supone que tiene algo más complejo sucediendo realmente. Después de todo, el cálculo para YesPercent no tiene nada que ver con los datos consultados, por lo que podría muy bien declarar una variable fuera de la consulta y usarla dentro.

+0

Me encantan los días cuando aprendo algo al azar. – Robaticus

+0

let es una característica muy útil, pero aparentemente infrautilizada, de la sintaxis de LINQ. +1 –

Cuestiones relacionadas