C#自定义类中的集合初始化器
示例
为了使一个类支持集合初始化器,它必须实现IEnumerable接口并至少具有一个Add方法。从C#6开始,IEnumerable可以Add使用扩展方法使用自定义方法扩展任何实现的集合。
class Program { static void Main() { var col = new MyCollection { "foo", { "bar", 3 }, "baz", 123.45d, }; } } class MyCollection : IEnumerable { private IList list = new ArrayList(); public void Add(string item) { list.Add(item) } public void Add(string item, int count) { for(int i=0;i< count;i++) { list.Add(item); } } public IEnumerator GetEnumerator() { return list.GetEnumerator(); } } static class MyCollectionExtensions { public static void Add(this MyCollection @this, double value) => @this.Add(value.ToString()); }