Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public struct Meeting
- {
- public string Id { get; set; }
- public DateTime Start { get; set; }
- public DateTime End { get; set; }
- }
- public static IEnumerable<ILookup<D, T>> GroupBy<T, D> (this IEnumerable<T> outer,
- Func<T, IEnumerable<D>> func)
- {
- if (outer == null)
- throw new ArgumentNullException(nameof(outer));
- if (func == null)
- throw new ArgumentNullException(nameof(func));
- Dictionary<D, IEnumerable<T>> lookup = new Dictionary<D, IEnumerable<T>>();
- foreach(T item in outer)
- {
- IEnumerable<D> keySelectory = func(item);
- if (keySelectory != null)
- {
- foreach(D newKey in keySelectory)
- {
- if (!lookup.ContainsKey(newKey))
- {
- lookup.Add(newKey, new List<T>() { item });
- }
- else
- {
- List<T> temp = lookup[newKey].ToList();
- temp.Add(item);
- lookup[newKey] = temp;
- }
- }
- }
- }
- return WHAT?
- }
- meetings.GroupBy(meeting => GetDatesFromStartAndEndTimes(meeting));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement