真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何在C#中使用List引用類型

這篇文章將為大家詳細(xì)講解有關(guān)如何在C#中使用List引用類型,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

10年積累的成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有法庫免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

一、反射

public static List Clone(this List list) where T : new()
  {
   List items = new List();
   foreach (var m in list)
   {
    var model = new T();
    var ps = model.GetType().GetProperties();
    var properties = m.GetType().GetProperties();
    foreach (var p in properties)
    {
     foreach (var pm in ps)
     {
      if (pm.Name == p.Name)
      {
       pm.SetValue(model, p.GetValue(m));
      }
     }
    }
    items.Add(model);
   }
   return items;
  }

二、序列化(依賴Newtonsoft.Json)

 public static List Clone(this List list) where T : new()
 {
 var str = JsonConvert.SerializeObject(list);
 return JsonConvert.DeserializeObject>(str);
 }

三、序列化(BinaryFormatter)

public static List Clone(this List list)
  {
   using (Stream objectStream = new MemoryStream())
   {
    IFormatter formatter = new BinaryFormatter();
    formatter.Serialize(objectStream, list);
    objectStream.Seek(0, SeekOrigin.Begin);
    return (List)formatter.Deserialize(objectStream);
   }
  }

測試

private void Test()
{
 List list = new List();
 list.Add(new NormalSetting { redisIp = "123" });
 List items = list.Clone();
 list[0].RedisIp = "456";
 logMessager.Show("{0}:{1}", list[0].RedisIp, items[0].RedisIp);
}

如何在C#中使用List引用類型

注意事項:

第一種方式無需任何依賴。

第二種方式需要Newtonsoft.Json,如果項目中沒有用到它,不推薦使用這種方式。

第三種方式序要給引用類型實體加上[Serializable]特性

關(guān)于如何在C#中使用List引用類型就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


標(biāo)題名稱:如何在C#中使用List引用類型
分享網(wǎng)址:http://weahome.cn/article/jdjijj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部