Sometimes you have a list of objects you want to stay sorted. You can usually use an IList and then linq: orderby to sort the list – but other times it helps to have the list always sorted. In those times, SortedSet works very well. In my below example, a sorted set contains some people – and whenever you look at the list in the SortedSet – they are already sorted (by age, name & location).
I was concerned about the performance of the SortedSet vs. a List, so after running some tests, as expected – the SortedSet needs some initial time when adding items (to compare) vs. the List which will is fast to write to – but needs a little time when sorting the list after. Below is some really fast numbers (data in milliseconds) I’ve compiled based on adding / reading 25000 records:
Below is the sample using SortedSet and an IComparer:
using System; using System.Collections.Generic; namespace sortedSet { internal class Program { private static void Main(string[] args) { //create the SortedSet SortedSet<Person> people = new SortedSet<Person>(new PersonComparer()); //add some random folks: Random rnd = new Random(); for (int i = 1; i <= 25; i++) { //new person Person person = new Person(); person.name = "Bob " + i.ToString(); person.location = "Miami" + i.ToString(); //random age int r = rnd.Next(1, 99); person.age = r; //add person to set people.Add(person); } //show our list: foreach (Person person in people) { Console.WriteLine(person.name + " - Age: " + person.age.ToString()); } Console.ReadLine(); } } //create comparer internal class PersonComparer : IComparer<Person> { public int Compare(Person x, Person y) { //first by age int result = x.age.CompareTo(y.age); //then name if (result == 0) result = x.name.CompareTo(y.name); //a third sort if (result == 0) result = x.location.CompareTo(y.location); return result; } } internal class Person { public string name { get; set; } public string location { get; set; } public int age { get; set; } } }
-If you don’t have a need to sort your lists – don’t forget about HashSet (very fast).

If you’re using
If you’ve added a rewrite to you web.config but are now receiving a HTTP Error 500.19 Internal Server Error, chances are you need to install the URL Rewrite Module. You might have assumed this is part of your install but it might be missing.






If you’re developing html / javascript applications and want to test locally, many times you will go beyond what local file access (file:///C:/…) in browsers will allow (like XMLHttpRequests, json calls, cross domain access and Access-Control-Allow-Origin restrictions).