No, the compiler requires a method named Add for the collection initializer to work. This is defined in C# specification and cannot be changed:
C# Language Specification – 7.5.10.3 Collection Initializers
The collection object to which a collection initializer is applied must be of a type that implements
System.Collections.IEnumerableor a compile-time error occurs. For each specified element in order, the collection initializer invokes anAddmethod on the target object with the expression list of the element initializer as argument list, applying normal overload resolution for each invocation. Thus, the collection object must contain an applicableAddmethod for each element initializer. [emphasis mine]
Of course, the Add method can take more than one argument (like Dictionary<TKey, TValue>):
dic = new Dictionary<int, int> {
{ 1, 2 },
{ 3, 4 }
};
// translated to:
dic = new Dictionary<int, int>();
dic.Add(1, 2);
dic.Add(3, 4);