相关疑难解决方法(0)

将List <BaseClass>复制到List <DerivedClass>

给定以下类定义:

public class BaseClass
{
    public string SomeProp1 { get; set; }
}

public class DerivedClass : BaseClass
{
    public string SomeProp2 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能List<BaseClass>把它转换成一个List<DerivedClass>

在我的真实世界场景中BaseClass有一大堆属性,我不想一个接一个地复制(然后记得在添加额外属性时进行维护).

添加参数化构造函数BaseClass不是一个选项,因为此类由WCF服务引用定义.

.net c#

23
推荐指数
2
解决办法
1万
查看次数

更快的深度克隆

有没有人想要一个允许我通过值.Net对象克隆的框架/类?我只对公共读/写属性(即DataContracts)感兴趣,我不关心引用是否正确解析(即包含两次相同项目实例的集合).

我尝试了序列化技巧DataContractSerializer(序列化为XML并返回),编写基于反射的克隆类(有时更快/有时更慢),并且想知道是否有人编写了一个辅助类,可以通过Emit而不是反射来完成.至于现在发射的IL对我的小脑子来说有点大,但我想这将是最终的解决方案.除非有人知道比DataContractSerializer更快的替代方法.

.net c#

21
推荐指数
4
解决办法
2万
查看次数

如何在C#中复制List

我想复制一个对象列表,但我不断获得对象之间的引用.

List<MyClass> copy = original;
Run Code Online (Sandbox Code Playgroud)

当我更改副本列表中的值时,原始列表也会被修改.有办法解决它吗?

c# asp.net code-behind

4
推荐指数
1
解决办法
2578
查看次数

将参考类型从一个复制到另一个C#

以下是我的课

 public Class Test 
 {
     int id {get;set;}
     string name {get;set;}
 }
Run Code Online (Sandbox Code Playgroud)

我正在创建此类的对象并分配值.

   var obj = new Test();
   obj.id = 1;
   obj.name = "test";
   var newobj = obj;
   newobj.name ="NewTest";
Run Code Online (Sandbox Code Playgroud)

以下是输出

  Console.WriteLine(obj.name); //NewTest
  Console.WriteLine(newobj.name); //NewTest
Run Code Online (Sandbox Code Playgroud)

当我改变新obj中存在的属性的值时,为什么obj的值正在改变.我知道它的解决方案,我不知道为什么我找不到.如果我在newobj中更改了值,我不希望obj的值被更改.

c#

1
推荐指数
1
解决办法
1825
查看次数

标签 统计

c# ×4

.net ×2

asp.net ×1

code-behind ×1