русский
Germany.ruForen → Архив Досок→ Programmierung

Эквивалент Access​ SQL Transform используя LINQ.

11.10.19 12:16
Re: Эквивалент Access​ SQL Transform используя LINQ.
 
Murr патриот
Murr

Хорошо, Но не пойдет.

В том смысле, что Я имею желание получить из Pivot() корректные данные.


А пользованный Пивот был такой:

public static Dictionary<TKey1, Dictionary<TKey2, TValue>> Pivot3<TSource, TKey1, TKey2, TValue>(
    this IEnumerable<TSource> source
    , Func<TSource, TKey1> key1Selector
    , Func<TSource, TKey2> key2Selector
    , Func<IEnumerable<TSource>, TValue> aggregate) {
    return source.GroupBy(key1Selector).Select(
        x => new
        {
            X = x.Key,
            Y = source.GroupBy(key2Selector).Select(
                z => new
                {
                    Z = z.Key,
                    V = aggregate(from item in source
                                  where key1Selector(item).Equals(x.Key)
                                  && key2Selector(item).Equals(z.Key)
                                  select item
                    )

                }
            ).ToDictionary(e => e.Z, o => o.V)
        }
    ).ToDictionary(e => e.X, o => o.Y); } 

 

Sprung zu