using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
public class Program
{
public static void Main()
var l = new List<int?>(new int?[]{null, 1, 2, 3, null, 2, 4, null, 5, 6});
var l2 = from e in l
orderby e.HasValue descending, e
select e;
Console.WriteLine(string.Join(" - " , l2));
}