現在の年の月のリストを取得する方法。ただし、リストには現在の月の前の月のみを含める必要があります。
今のように、それは2013年の3月であり、リストには2013年1月と2013年2月が含まれている必要があります。4月が始まると、1月、2月、3月が含まれるはずです。
Enumerable.Range(1, DateTime.Today.Month - 1)
    .Select(m => new DateTime(DateTime.Today.Year, m, 1))
    .ToList();
    多分:
var today = DateTime.Today;
var beforeMonths = Enumerable.Range(1, 12)
            .Where(i => i < today.Month)
            .Select(i => new DateTime(today.Year, i, 1))
            .ToList();
    空のリストを返す 1 月の結果以外 (これはあなたが望むものかもしれません) を使用できます:
Enumerable.Range(1,DateTime.Today.Month - 1)
          .Select(i => new DateTime(DateTime.Today.Year,i,1));
または、文字列表現を使用する場合
Enumerable.Range(1,DateTime.Today.Month - 1)
          .Select(i => new DateTime(DateTime.Today.Year,i,1)
                           .ToString("MMM yyyy"));
    これを試して:
 var x = new[]
        {"Jan", "Feb", "Mar", 
         "Apr", "May", "Jun", 
         "Jul", "Aug", "Sep", 
         "Oct", "Nov", "Dec"}.Take
         (DateTime.Today.Month-1);
または、具体的なリストが必要な場合は、
 var x = new[]
        {"Jan", "Feb", "Mar", 
         "Apr", "May", "Jun", 
         "Jul", "Aug", "Sep", 
         "Oct", "Nov", "Dec"}.Take
         (DateTime.Today.Month-1).ToList();
    これにより、月が表示されます
    static void Main(string[] args)
    {
        var months =
            Enumerable.Range(1, DateTime.Now.Month-1).Select(
                p => new DateTime(DateTime.Now.Year, p, 1));
        foreach(var month in months)
            Console.WriteLine(month.ToString("MMM yyyy"));
        Console.ReadLine();
    }
    あなたは現在の月を取得します
DateTime.Today.Month;
3 月は 3 です。
次に、0 から DateTime.Today.Month まで月をインクリメントしてループできます。
List<DateTime> months = new List<DateTime>();
for (int i = 0; i < DateTime.Now.Month; ++i)
{
     months.Add(new DateTime(DateTime.Now.Year, i, 1));
}