2017-05-13 14 views
0

私は4つのプロパティを持つクラスを持っています。私は2つのフィールドをグループ化し、2つの他の数値フィールドを数えることによって、このオブジェクトのリストから結果のようなピボットテーブルを取得したいと思います。私は任意のヘルプが理解されるであろうことを行うために管理することができませんでした:ピボットテーブルの種類の結果を与えるLinqクエリ

class Car 
{ 
    public string Make { get; set; } 
    public string Model { get; set; } 
    public int AccidentCount { get; set; } 
    public int MaintenanceCount { get; set; } 
} 

List<Car> cars = new List<Car>() 
{ 
    new Car(){Make = "Mercedes", Model = "E-200", AccidentCount = 1 ,MaintenanceCount = 0}, 
    new Car(){Make = "Mercedes", Model = "E-200", AccidentCount = 1 ,MaintenanceCount = 1}, 
    new Car(){Make = "Mercedes", Model = "E-200", AccidentCount = 1 ,MaintenanceCount = 1}, 
    new Car(){Make = "Mercedes", Model = "E-180", AccidentCount = 0 ,MaintenanceCount = 1}, 
    new Car(){Make = "Mercedes", Model = "E-180", AccidentCount = 1 ,MaintenanceCount = 1} 
}; 

クエリの結果は次のようになります。

  • モデルAccidentCount MaintenanceCountを作るメルセデスE-200 3 2
  • をメルセデスE-180 1 2

答えて

1

LINQを使用して車をグループ化すると、MakeModelとなります。今、あなたはAccidentCountMaintenanceCountをまとめることができます。問題を解決し

IEnumerable<Car> summedUp = cars.GroupBy(c => new { c.Make, c.Model }) 
    .Select(g => new Car() 
     { 
      Make = g.Key.Make, 
      Model = g.Key.Model, 
      AccidentCount = g.Sum(c => c.AccidentCount), 
      MaintenanceCount = g.Sum(c => c.MaintenanceCount) 
     }); 
+0

感謝を。そして、もし私がどこにモデルがnullでないのかを追加したいのであれば、どこにクエリを追加すればいいですか? –

+0

「cars.Where(c =>!string.IsNullOrEmpty(c.Model))。GroupBy ...」 – Fruchtzwerg

+0

「いいえ、私もそれを行うことができました。 –

関連する問題