0

linq subselect クエリに where 条件を追加するにはどうすればよいですか。

すなわち

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 ステートメントに「Where 条件」を追加するにはどうすればよいでしょうか。

4

2 に答える 2

0

Where説明した句を使用してメソッドを 追加するだけです!

Avg   = g.Where(c => c.Duration > 5).Average(c => c.Duration), 
Total = g.Where(c => c.Duration >= 60).Sum(c => c.Duration)
于 2010-01-22T01:17:56.997 に答える
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 )
            };
于 2010-01-22T01:18:09.753 に答える