SortedList を List っぽく使う

ネタ。多分こんな使い方しないと思うけど、拡張メソッドで Add を追加してあげたらそれっぽくなるかも?

using System;
using System.Collections.Generic;

public static class SortedListExtensions {
  public static void Add<T>(this SortedList<int, T> target, T source) {
    target.Add(target.Count, source);
  }
}
class Program {
  static void Main(string[] args) {
    var sortedList = new SortedList<int, Item>();
    sortedList.Add(new Item() { Id = 2, Name = "かきく" });
    sortedList.Add(new Item() { Id = 1, Name = "あいう" });

    Console.WriteLine(sortedList[0]);
    Console.WriteLine(sortedList[1]);

    var list = new List<Item>() {
      new Item() { Id = 2, Name = "かきく" }, 
      new Item() { Id = 1, Name = "あいう" }
    };

    Console.WriteLine(list[0]);
    Console.WriteLine(list[1]);

    Console.ReadKey();
  }
}
class Item {
  public int Id { get; set; }
  public string Name { get; set; }

  public override string ToString() {
    return string.Format("Id:{0} Name:{1}", Id, Name);
  }
}