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());

new Tuple<string, string>(x.JoinField, x.TargetField)このグループ化、より具体的にはこのキー生成を動的にするにはどうすればよいですか? 複合キーにさまざまな数のフィールド (この例では 1 から 4) を含めることができ、さまざまなフィールドの組み合わせ (間違いでなければ、合計 12 の可能性) も可能です。それは可能ですか?

編集:すべてのフィールドを単一の に変更する自由がありますDictionary<string, string>。つまり、他のすべての以前のプロパティを格納する単一の辞書プロパティがあります。

4

0 に答える 0