【发布时间】:2016-10-20 07:50:31
【问题描述】:
我有两个彼此没有联系的班级:
public class A
{
public String Address {get;set}
}
public class B
{
public String Address {get;set}
}
List<A> addressList = DB.Addresses.GetAll();
当我这样做时
List<B> addressListOther = addressList.Cast<B>().ToList();
输出是:
附加信息:无法将“A”类型的对象转换为“B”类型。
知道如何解决这个问题吗?
【问题讨论】:
-
你有什么想法?显然,当它们彼此不相关时,您不能将一种类型转换为另一种类型。您可以将它们更改为从同一接口继承(并强制转换为该接口)或手动将属性从一个复制到另一个。
-
您需要循环列表并将一个类属性分配给另一个类属性。
-
仅仅因为两个类具有相同的属性并不意味着它们在任何方面、形状或形式上都相关。 C# 将此类类视为完全不同的事物。如果你真的想把 A 变成 B 只是因为它们具有相同的属性,那么你不是在寻找转换而是在寻找映射。