1

我需要基于可变长度的复合对项目列表进行分组(即复合键中的项目数因情况而异)。我知道如何按固定数量的字段(使用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());

我怎样才能使这个分组,更具体地说这个 key generation new Tuple<string, string>(x.JoinField, x.TargetField),动态的?我可以在复合键中拥有可变数量的字段(在此示例中为 1 到 4)以及不同的字段组合(如果我没记错的话,总共有 12 种可能性)。甚至可能吗?

编辑:我可以自由地将所有字段更改为一个Dictionary<string, string>,即具有一个存储所有其他先前属性的字典属性。

4

0 回答 0