2010-01-22 4 views
0

как мы можем добавить условие where к запросу подзапроса linq.linq где условие на подзапросе

т.е.

List<CallLog> callLog = CallLog.SampleData(); 
List<Contacts> contacts = Contacts.SampleData(); 


var q = from call in callLog 
     where call.Incoming == true 
     group call by call.Number into g 
     select new contacts { 
           contact.FirstName = g.FirstName, 
           contact.LastName = g.LastName, 
          Count = g.Count(), 
          Avg = g.Average(c => c.Duration) <--- WHERE c.Duration > 5, 
          Total = g.Sum(c => c.Duration) <--- WHERE c.Duration >= 60 
          }; 

Как мы можем добавить «Где условие» на заявление LINQ, как показано выше?

ответ

0

Просто добавьте метод Where с описанием, которое вы описали!

Avg = g.Where(c => c.Duration > 5).Average(c => c.Duration), 
Total = g.Where(c => c.Duration >= 60).Sum(c => c.Duration) 
0

Вы чуть было его:

var q = from call in callLog 
     where call.Incoming == true 
     group call by call.Number into g 
     select new contacts { 
       contact.FirstName = g.FirstName, 
       contact.LastName = g.LastName, 
          Count = g.Count(), 
          Avg = g.Where(c => c.Duration > 5).Average(c => c.Duration), 
          Total = g.Where(c => c.Duration >= 60).Sum(c => c.Duration) 
      }; 
Смежные вопросы