2011-08-03 52 views
0

我有一個列表本身包含n個列表(在這個例子中有4個列表)。我需要做的就是輸出作爲「所需的查詢結果」下方如何提取併合並n個列表的列表?

名單列表:

Product  Year DY 
Comp   1992 110.0 
Comp   1993 200.0 
Non-Comp  1990 45.2 
Non-Comp  1991 50.0 
Non-Comp  1992 55.0 
Non-Comp  1993 100.0 

Product  Year DY 
Comp   1992 170.0 
Non-Comp  1990 64.8 
Non-Comp  1991 75.0 
Non-Comp  1992 85.0 

Product  Year DY 
Non-Comp  1991 25.0 

Product  Year DY 
Non-Comp  1990 37.0 

必要查詢結果:

Product  Year DY1  DY2  DY3  DY4 
Comp   1992 110.0 170.0  
Comp   1993 200.0   
Non-Comp  1990 45.2 64.8    37.0 
Non-Comp  1991 50.0 75.0  25.0 
Non-Comp  1992 55.0 85.0   
Non-Comp  1993 100.0 

記得有可能超過4在列表中列出,所以我想像這樣的事情:

foreach (var element in myList) 
{ 
    // some hard work 
} 
+4

你到目前爲止嘗試過什麼? –

+2

盯着它... – descf

+0

myList是什麼類型? IEnumerable (什麼是T) –

回答

1

很難回答這個問題,沒有更好地描述您的輸入/輸出對象模型,但我認爲您想要:

  1. 將您的項目列表展平爲單個(平面)項目序列。
  2. 將這些項目與包含項目的產品和年份的複雜關鍵字分組。
  3. 將每個組中的項目投影到它們各自的DY中。

喜歡的東西:

var query = myListOfLists.SelectMany(list => list) // Flatten 
         .GroupBy(item => new { item.Product, item.Year }, // Group 
            item => item.DY); // Project 
0

像這樣的事情?

List<List<Product>> nestedList; 

List<Product> = allProducts = nestedList.SelectMany(x => x); 
var groupped = allProducts 
    .GroupBy(x => new { Product = x.Product, Year = x.Year}, x => x.DY);