小编Ale*_*lex的帖子

从IEnumerable <T>到MyCollection的隐式转换

我正在尝试创建一个隐式转换,允许我使用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)

我之前没有尝试使用隐式用户定义的转换,我做错了什么?

c# casting

6
推荐指数
2
解决办法
989
查看次数

标签 统计

c# ×1

casting ×1