我正在尝试创建一个隐式转换,允许我使用LINQ结果直接返回MyCollection.
public class MyCollection : ICollection<MyType>
{
private List<MyType> _list = new List<MyType>();
public MyCollection(IEnumerable<MyType> collection)
{
_list = new List<MyType>(collection);
}
public static implicit operator MyCollection(IEnumerable<MyType> collection)
{
return new MyCollection(collection);
}
// collection methods excluded for brevity
public MyCollection Filter(string filter)
{
return _list.Where(obj => obj.Filter.Equals(filter)); // cannot implicitly convert
}
}
Run Code Online (Sandbox Code Playgroud)
我之前没有尝试使用隐式用户定义的转换,我做错了什么?