2012-01-12 5 views
0

Я пытаюсь перейти от первого блока ко второму блоку через запрос Linq, возможно ли это?Linq Sub Grouping Query

Year Quarter WordDoc SpreadSheet 
--------------------------------------------------- 
2005 Q1  q1file.doc - 
2005 Q1  -     q1file.xls 
2005 Q2  q2file.doc - 
2005 Q2  -      q2File.xls 
2005 Q3  q3file.doc - 
2005 Q3  -      q3File.xls 
2006 Q4  q4file.doc - 
2006 Q4  -      q4File.xls 

второй блок:

Year Quarter WordDoc SpreadSheet 
--------------------------------------------------- 
2005 
     Q1  q1file.doc q1File.xls 
     Q2  q2file.doc q2File.xls 
     Q3  q3file.doc q3File.xls 
2006   
     Q4  q4file.doc q4File.xls 

К сожалению, все, что я могу понять, до сих пор является группировка по годам:

var results = 
    from entry in SampleDeals 
    group entry by entry.Year into years 
    select years; 

results.Dump(); 
+0

Подсказка: вы p грамотно захотеть сделать соединение. –

ответ

0

Предполагая, что все группы имеют 2 элемента, один с текстовым документом другой с электронной таблицей:

var groups = SampleDeals.GroupBy(deal => new {Year = deal.Year, Quarter = deal.Quarter}); 
var whatYouWant = groups.Select(group => new {Year = group.Year, Quarter = group.Quarter,  
         WordDoc = group.First().WordDoc ?? group.ElementAt(1).WordDoc, 
         SpreadSheet = group.First().SpreadSheet ?? group.ElementAt(1).SpreadSheet});