2

<string, List<ProviderSummary>>私はもともとと呼ばれる辞書を持っていますrowsDictionary

そのディクショナリの各キーについて、次のようないくつかの基準で値のリストをグループ化します。

    Dictionary<string, List<ProviderSummary>> providerGroups = rowsDictionary.ToDictionary(
            x => x.Key,
            v => v.Value.GroupBy(x => new { x.GroupID, x.GroupFin, x.ZipCode })
                      .Select(x => x.First())
                      .ToList());

たとえば、key["1234"]元は値のリストに 6 つの項目があった場合、そのグループ化に基づいて 2 つの項目が含まれる可能性があります。私の質問と混乱は、残りの値に何が起こるかということです? (これらの 4 つ) グループに対して返されるこれら 2 つのリストにはどのような値が入るでしょうか?

4

3 に答える 3

4

グループに対して返されるリストにはどのような値が入るでしょうか?

次のことを行うため、各グループの 1 つ目:

.Select(x => x.First())

残りの値はどうなりますか?

それらはターゲット辞書に射影されません。

于 2014-08-05T14:01:36.843 に答える
3

LINQ group by クエリは元のリストを取得し、追加のグループ化を実行してから、そのグループ化に基づいてリストを整理します。

1 つのリストに次の項目が含まれている状況を考えてみましょう。

GroupID GroupFin ZipCode Name
------- -------- ------- ----
      1        1   94111    A
      1        1   94111    B
      1        1   94111    C
      1        1   94111    D
      1        2   94110    E
      1        2   94110    F

Group by は、この 6 つのリストから 2 つのグループを作成します。

GroupID=1 GroupFin=1 ZipCode=94111
GroupID=1 GroupFin=2 ZipCode=94110

最初のグループには、プロバイダー A、B、C、および D が含まれます。2 番目のグループには E と F が含まれます。

クエリが次に行うことは、適用Firstです。この操作は、グループから最初の項目を選択します。この場合、A と E になります。残りの項目は無視されます。

于 2014-08-05T14:09:10.050 に答える