gpt4 book ai didi

c# - 如何在 C# 中将 X 列表转换为 Y 列表?

转载 作者:太空狗 更新时间:2023-10-30 00:58:13 26 4
gpt4 key购买 nike

我有两个基类 FirstBase 和 SecondBase。我也有 2 个类派生自它们,DerivedFirst 和 DerivedSecode,它们都具有几乎相同的属性。源代码如下。

public abstract class FirstBase
{
//some method
}

public abstract class SecondBase
{
//some method
}

public class DerivedFirst : FirstBase
{
//override methods of its parent

public static implicit operator DerivedFirst(DerivedSecond second)
{
//doing some logic here
}
}

public class DerivedSecond : SecondBase
{
//override methods of its parent

public static implicit operator DerivedSecond(DerivedFirst first)
{
//doing some logic here
}
}

从这段代码中,我可以毫无问题地创建 DerivedFirst 的实例并分配给 DerivedSecond。但是,当我尝试像下面的代码那样转换它们的列表时,它没有结果。

List<DerivedFirst> firstList;
List<DerivedSecond> secondList;

//doing some operation here

List<DerivedSecod> test = firstList.Cast<DerivedSecond>(); // don't have any output here.

如何将 firstList 转换为 List()?

最佳答案

用户定义的隐式转换仅在编译时被考虑,而不是在运行时(source)。您可以改用 Select:

List<DerivedSecond> foo = firstList.Select(x => (DerivedSecond)x).ToList();

关于c# - 如何在 C# 中将 X 列表转换为 Y 列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3324605/

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