Guest User

Untitled

a guest
Jun 22nd, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.20 KB | None | 0 0
  1. IList<Person> people = new List<Person>();
  2. people.Add(new Person(){ Name = "Alan"});
  3. people.Add(new Person(){ Name = "Bob"});
  4. people.Add(new Person(){ Name = "Chris"});
  5.  
  6. Assert.That(people.All(....), "list of person not ordered correctly");
  7.  
  8. public static bool IsOrdered<T>(this IEnumerable<T> source)
  9. {
  10. var comparer = Comparer<T>.Default;
  11. T previous = default(T);
  12. bool first = true;
  13.  
  14. foreach (T element in source)
  15. {
  16. if (!first && comparer.Compare(previous, element) > 0)
  17. {
  18. return false;
  19. }
  20. first = false;
  21. previous = element;
  22. }
  23. return true;
  24. }
  25.  
  26. public static bool IsOrdered<T>(this IEnumerable<T> enumerable) {
  27. var comparer = Comparer<T>.Default;
  28. using ( var e = enumerable.GetEnumerator() ) {
  29. if ( !e.MoveNext() ) {
  30. return true;
  31. }
  32. var previous = e.Current;
  33. while (e.MoveNext()) {
  34. if ( comparer.Compare(previous, e.Current) > 0) {
  35. return false;
  36. }
  37. previous = e.Current;
  38. }
  39. return true;
  40. }
  41. }
  42.  
  43. var isOrdered = people.Select(x => x.Name).IsOrdered();
  44.  
  45. people.Zip(people.OrderBy(p => p.Name), (a, b) => a == b).All(eq => eq);
  46.  
  47. "Alan" -- "Alan" => true
  48. "Bob" -- "Bob" => true
  49. "Chris" -- "Chris" => true
Add Comment
Please, Sign In to add comment