Advertisement
Guest User

Untitled

a guest
Jun 15th, 2019
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.30 KB | None | 0 0
  1. public struct Meeting
  2. {
  3. public string Id { get; set; }
  4.  
  5. public DateTime Start { get; set; }
  6.  
  7. public DateTime End { get; set; }
  8. }
  9.  
  10. public static IEnumerable<ILookup<D, T>> GroupBy<T, D> (this IEnumerable<T> outer,
  11. Func<T, IEnumerable<D>> func)
  12. {
  13. if (outer == null)
  14. throw new ArgumentNullException(nameof(outer));
  15.  
  16. if (func == null)
  17. throw new ArgumentNullException(nameof(func));
  18.  
  19. Dictionary<D, IEnumerable<T>> lookup = new Dictionary<D, IEnumerable<T>>();
  20.  
  21. foreach(T item in outer)
  22. {
  23. IEnumerable<D> keySelectory = func(item);
  24. if (keySelectory != null)
  25. {
  26. foreach(D newKey in keySelectory)
  27. {
  28. if (!lookup.ContainsKey(newKey))
  29. {
  30. lookup.Add(newKey, new List<T>() { item });
  31. }
  32. else
  33. {
  34. List<T> temp = lookup[newKey].ToList();
  35. temp.Add(item);
  36. lookup[newKey] = temp;
  37. }
  38. }
  39. }
  40. }
  41.  
  42. return WHAT?
  43. }
  44.  
  45. meetings.GroupBy(meeting => GetDatesFromStartAndEndTimes(meeting));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement