C# bool Sort Examples (True to False)

Display the result of sorting bools. Bools are sorted from false to true by default.
Bool sort. Bools can be sorted. When stored in an array or List, they can be ordered with Sort methods. This allows you to order your collection by true or false.SortBoolList
This is useful for promoting or demoting elements programmatically. A sorted list of bools helps us prioritize "true" results over "false" results.
First example. One use for sorting bools is reordering a List of objects. Sometimes, you need to mark some elements in the List as "bad," pushing them to the bottom of the List.

Tip: Bools have a default of false in a class or struct. With bools, the default Sort method will put false before true.

True, False

Info: The example populates a List generic with 5 bool values. It displays the List in that state, and then sorts it with List.Sort method.

Default order: The default Sort method orders the bools from False to True. This is just like ordering 0 to 1.

Descending: The descending keyword in the example above uses the LINQ query syntax, which is useful for sorting.

LINQ
C# program that sorts bools using System; using System.Collections.Generic; using System.Linq; class Program { static void Main() { var items = new List<bool>(); items.Add(true); items.Add(false); items.Add(false); items.Add(false); items.Add(true); foreach (bool value in items) { Console.WriteLine("UNSORTED: {0}", value); } // Sort. items.Sort(); foreach (bool value in items) { Console.WriteLine("SORTED: {0}", value); } // Sort descending. var sorted = from item in items orderby item descending select item; foreach (bool value in sorted) { Console.WriteLine("REVERSE SORTED: {0}", value); } } } Output UNSORTED: True UNSORTED: False UNSORTED: False UNSORTED: False UNSORTED: True SORTED: False SORTED: False SORTED: False SORTED: True SORTED: True REVERSE SORTED: True REVERSE SORTED: True REVERSE SORTED: False REVERSE SORTED: False REVERSE SORTED: False
Example, bool property. Bool sorting can implement a selection algorithm. Only one element should be chosen, but no elements should be eliminated.

Here: We create a List of TestData items. We then sort them with the IsImportant property—important items come before unimportant ones.

Info: This approach can improve error handling as it does not eliminate any elements from consideration.

Exit: We can exit the foreach-loop with a break or return when we find an item that matches our conditions.

Foreach
C# program that uses bool property sort using System; using System.Collections.Generic; using System.Linq; class TestData { public bool IsImportant { get; set; } public string Data { get; set; } } class Program { static void Main() { // Add data to the list. var items = new List<TestData>(); items.Add(new TestData() { IsImportant = true, Data = "Bird" }); items.Add(new TestData() { IsImportant = false, Data = "Cat" }); items.Add(new TestData() { IsImportant = true, Data = "Human" }); // Sort by bool on class. var sorted = from item in items orderby item.IsImportant descending select item; // Put "important" items first. foreach (var item in sorted) { Console.WriteLine("ITEM: " + item.IsImportant + "; " + item.Data); } } } Output ITEM: True; Bird ITEM: True; Human ITEM: False; Cat
A discussion. To filter, you can add a bool property or field to your class, and then assign that to true or false depending on whether you want to give the item priority.

So: Use true to promote the class. Sort the objects with the LINQ query syntax, using the orderby descending clause.

orderby
A summary. Bools are sorted from false to true. The descending sort will order them from true to false. True is essentially equal to 1, and false to 0.
Use boolean sorting for selection algorithms where some objects should be demoted. This helps when we do not want to eliminate items from consideration, but want to prioritize others.
© 2007-2019 Sam Allen. Every person is special and unique. Send bug reports to info@dotnetperls.com.
HomeSearch
Home
Dot Net Perls