コガネブログ

平日更新を目標にUnityやC#などのゲーム開発アレコレを書いていきます

【C#】GroupByでリストをグループ化する時に複数のキーを指定する

// アイテムタイプ
enum ITEM_TYPE
{
    FREE_MONEY, // 無料通貨 
    PAY_MONEY , // 有料通貨
    RECOVERY  , // 回復アイテム
    EQUIPMENT , // 装備アイテム
    OTHER     , // その他
}

// アイテム情報
class ItemData
{
    public int       mId   ; // ID
    public ITEM_TYPE mType ; // アイテムタイプ
    public int       mCount; // 所持数
}

// アイテム情報を管理するリスト
List<ItemData> mItemList;

例えばこのようなアイテム情報を管理するリストが存在して
IDとアイテムタイプの2つのキーによって
アイテム情報をグループ分けしたい場合は
下記のようにGroupByで匿名型を使用することで実現可能です

var result = mItemList
    .GroupBy( c => new { c.mId, c.mType } )
    .ToArray();