我下面的數據的GroupBy與使用LINQ
Id1 Id2 Days
------------------------
1 1 10
1 1 20
1 2 30
1 3 40
我想組數據由Id1
和Id2
使用LINQ 當我通過如下它給了我正確的結果做組預定義類型
List<data>.GroupBy(p => new {p.Id1, p.Id2});
但是,當我使用預定義類型時,它給出了四個不同行組的結果。它不會將單個組中的前兩行組合在一起。
List<data>.GroupBy(p => new GroupKey(p.Id1, p.Id2));
class GroupKey
{
public GroupKey(decimal _id1,decimal _id2)
{
Id1= _id1;
Id2= _id2;
}
public decimal Id1{ get; set; }
public decimal Id2{ get; set; }
}
如何用預定義類型實現相同的結果?
如果您打算爲此使用該對象,您應該使其不可變。可變的哈希表鍵是...不可取的。 – Servy
我想你需要重寫equals,如果你打算使用你自己的類型進行分組。 –
如果您使用該類_only_進行分組,那麼您會發現使用匿名類型更容易,維護也更少。 –