簡體   English   中英

如何提取和合並n個列表的列表?

[英]How do I extract and combine a list of n lists?

我有一個列表,它本身包含n個列表(在這種情況下,有4個)。 我需要做的是獲取輸出,如下面的“必需的查詢結果”所示

清單清單:

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
}

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

  1. 將您的項目列表列表扁平化為單個(扁平)項目序列。
  2. 使用包含項目的“產品”和“年份”的復雜鍵對這些項目進行分組。
  3. 將每個組中的項目投影到各自的DY。

就像是:

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

我認為您可以使用LINQ做到這一點

請檢查以下鏈接:

是否可以使用LINQ透視數據?

像這樣嗎

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 );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM