KeyValuePairリテラル
static な可変長引数のインデクサから更に妄想して、KeyValuePairリテラルとか考えてみた。
KeyValuePair<int, int> pair1 = 10:10; KeyValuePair<int, KeyValuePair<int, int>> pair2 = 10:20:30;
さらに、
(int:int) pair1 = 10:10; (int:int:int) pair2 = 10:20:30;
とか。
static な可変長引数のインデクサと合わせると、
public class Dict<TKey, TValue> : ... { public static Dict<TK, TV> this<TK, TV>[params (TK:TV)[] args] { get { Dict<TK, TV> d = new Dict<TK, TV>(args.Length); foreach (KeyValuePair<TK, TV> p in args) { d.Add(p.Key, p.Value); } return d; } } }
Dict<int, int> d = Dict[1:10, 2:20, 3:30];
みたいな!!