gpt4 book ai didi

c# - 集合的隐式转换

转载 作者:行者123 更新时间:2023-11-30 16:30:37 25 4
gpt4 key购买 nike

如果我在两种类型之间定义了一个显式转换运算符,难道我不能在这些类型的集合之间进行显式转换吗?即。

    public static explicit operator FooEntity(Entity entity)
{
FooEntity e = new FooEntity(entity);
return e;
}

因此我可以做到这一点,

    IEnumerable<Entity> entities = GetEntities();
IEnumerable<FooEntity> fooEntities = (IEnumerable<FooEntity>)entities;

    IEnumerable<FooEntity> fooEntities = entities as IEnumerable<FooEntity>

这是否可能以某种方式实现,还是我还必须创建自己的运算符来在集合之间进行转换?我收到一个运行时错误,提示无法进行转换。

谢谢。

最佳答案

C# 不支持这种在集合赋值上使用泛型类型变化的方法,你必须使用类似这样的方法:

IEnumerable<FooEntity> fooEntities = entities.Select(e => (FooEntity)e);

关于c# - 集合的隐式转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5545524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com