Sorting by patients' name or birth
You can use the ComparerExtensions library to help you create comparers more easily.

With it, your code could look something like:

IComparer&lt;Physician&gt; comparer = null;

if (criteria.SortBy == "name")
{
    comparer = KeyComparer&lt;Physician&gt;.OrderBy(x =&gt; x.Name);
}
else if (criteria.SortBy == "birth")
{
    comparer = KeyComparer&lt;Physician&gt;.OrderBy(x =&gt; x.DateOfBirth);
}

if (comparer != null)
{
    if (criteria.SortDirection != "ascending")
    {
        comparer = comparer.Reversed();
    }

    physicians.Sort(comparer);
}