C# 按动态复合键分组(键中字段数的长度可变)

C# 按动态复合键分组(键中字段数的长度可变),c#,dynamic,group-by,C#,Dynamic,Group By,我需要根据具有可变长度的组合对项目列表进行分组,即组合键中的项目数量随情况而变化。我知道如何使用Tuple按固定数量的字段分组,但我不知道如何使分组复合键采用可变长度。我不是说它应该在同一分组阶段改变长度。我希望只编写一次,并动态地使用它来替代编写以不同数量的字段作为键的I方法 考虑这个简单的类: class SimpleItem { public string TargetField { get; set; } public string JoinField { get; se

我需要根据具有可变长度的组合对项目列表进行分组,即组合键中的项目数量随情况而变化。我知道如何使用Tuple按固定数量的字段分组,但我不知道如何使分组复合键采用可变长度。我不是说它应该在同一分组阶段改变长度。我希望只编写一次,并动态地使用它来替代编写以不同数量的字段作为键的I方法

考虑这个简单的类:

class SimpleItem
{
    public string TargetField { get; set; }
    public string JoinField { get; set; }
    public string InformationField { get; set; }
    public string Additional { get; set; }
}
我可以使用以下方法按多个键进行分组:

var grouped = simpleList.GroupBy(x => new Tuple<string, string>(x.JoinField, x.TargetField))
             .ToDictionary(x => x.Key, y => y.ToList());
我如何使这个分组,更具体地说,这个密钥生成新的Tuplex.JoinField,x.TargetField,动态?在本例中,如果我没有弄错的话,我可以在复合键中有1到4个可变数量的字段,以及总共12种可能的不同字段组合。有可能吗

编辑:我可以自由地将所有字段更改为一个字典,也就是说,有一个字典属性存储所有其他以前的属性