Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- IList<Person> people = new List<Person>();
- people.Add(new Person(){ Name = "Alan"});
- people.Add(new Person(){ Name = "Bob"});
- people.Add(new Person(){ Name = "Chris"});
- Assert.That(people.All(....), "list of person not ordered correctly");
- public static bool IsOrdered<T>(this IEnumerable<T> source)
- {
- var comparer = Comparer<T>.Default;
- T previous = default(T);
- bool first = true;
- foreach (T element in source)
- {
- if (!first && comparer.Compare(previous, element) > 0)
- {
- return false;
- }
- first = false;
- previous = element;
- }
- return true;
- }
- public static bool IsOrdered<T>(this IEnumerable<T> enumerable) {
- var comparer = Comparer<T>.Default;
- using ( var e = enumerable.GetEnumerator() ) {
- if ( !e.MoveNext() ) {
- return true;
- }
- var previous = e.Current;
- while (e.MoveNext()) {
- if ( comparer.Compare(previous, e.Current) > 0) {
- return false;
- }
- previous = e.Current;
- }
- return true;
- }
- }
- var isOrdered = people.Select(x => x.Name).IsOrdered();
- people.Zip(people.OrderBy(p => p.Name), (a, b) => a == b).All(eq => eq);
- "Alan" -- "Alan" => true
- "Bob" -- "Bob" => true
- "Chris" -- "Chris" => true
Add Comment
Please, Sign In to add comment