c# - 如果对象 O 继承自对象 T,我如何转换 List列出?
问题描述
我有一个 JSON 响应,它依赖于我无法直接修改的 POCO C# 对象。我需要向 POCO 对象添加一些字段,然后将它们从应用程序的任何其他重用同一对象的组件中屏蔽。
由于我控制了网络服务器和客户端(但不是 POCO 对象本身),我的解决方案是从对象 T 派生,创建List<O>
,然后将其转换List<T>
为任何不想看到我在其中添加的依赖项派生对象O
。
如果T
是 的父级O
,并且简单的转换不起作用,我应该如何从一个转换为另一个?
例如
public class Parent
{
public string ParentString {get;set;}
}
public class Child : Parent
{
public string ChildTempObject {get;set;}
}
public static DoStuff()
{
List<Child> childList = new List<Child>
//... get from webservice...
return (List<Parent>)childList; // doesn't work
}
解决方案
使用Enumerable.Cast<T>
:
List<Parent> parentList = childList.Cast<Parent>().ToList();
推荐阅读
- phpspreadsheet - 使用 PhpSpreadsheet 设置电子表格单元格的宽度(像素)
- esp8266 - 当互联网连接从 esp8266 (Nodemcu) 重新连接时,从 .json 文件发送数据集合
- javascript - Spring MVC - 从控制器发布到不同的 url
- python - 从 python 的列表中删除值 / nan / 空字符串(“”)
- php - 如何在 WooCommerce /my-account/downloads/ 中的下载表中添加一列
- scala - 为什么 scala-swing Button 可以分配给 MainFrame 的内容?
- zos - 参数传递——非标准联动
- shopify - Shopify 不断删除应用的折扣
- javascript - 异步函数
- c - 有没有办法循环使用 C 中的四个基本操作?