自定义类中的集合初始值设定项
要创建类支持集合初始值设定项,它必须实现 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());
}