Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static class Extensions
- {
- public static Dictionary<TKeyOuter, Dictionary<TKeyMiddle, Dictionary<TKeyInner, TValue>>> ToThreeLevelDictionary<TKeyOuter, TKeyMiddle, TKeyInner, TValue, TInput>(
- this IEnumerable<TInput> input,
- Func<TInput, TKeyOuter> outerKeySelector,
- Func<TInput, TKeyMiddle> middleKeySelector,
- Func<TInput, TKeyInner> innerKeySelector,
- Func<TInput, TValue> valueSelector)
- {
- return input
- .ToLookup(outerKeySelector)
- .ToDictionaryWithDuplicateKeyCheck(
- x => x.Key,
- x => x.ToTwoLevelDictionary(middleKeySelector, innerKeySelector, valueSelector));
- }
- public static Dictionary<TKeyOuter, Dictionary<TKeyInner, TValue>> ToTwoLevelDictionary<TKeyOuter, TKeyInner, TValue, TInput>(
- this IEnumerable<TInput> input,
- Func<TInput, TKeyOuter> outerKeySelector,
- Func<TInput, TKeyInner> innerKeySelector,
- Func<TInput, TValue> valueSelector)
- {
- return input
- .ToLookup(outerKeySelector)
- .ToDictionaryWithDuplicateKeyCheck(
- x => x.Key,
- x => x.ToDictionaryWithDuplicateKeyCheck(
- innerKeySelector,
- valueSelector));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement