C# list<T>去重的实现

  目录

  值类型去重

  List

  object is int

  //object is int

  List ointList = new List();

  ointList.Add(1);

  ointList.Add(1);

  ointList.Add(2);

  ointList = ointList.Distinct().ToList();

  object is decimal

  //object is decimal

  List odecimalList = new List();

  odecimalList.Add(1.25);

  odecimalList.Add(1.25);

  odecimalList.Add(2.25);

  odecimalList = odecimalList.Distinct().ToList();

  object is char

  //object is char

  List ocharList = new List();

  ocharList.Add('a');

  ocharList.Add('a');

  ocharList.Add('b');

  ocharList = ocharList.Distinct().ToList();

  object is bool

  //object is bool

  List oboolList = new List();

  oboolList.Add(true);

  oboolList.Add(false);

  oboolList.Add(true);

  oboolList = oboolList.Distinct().ToList();

  object is string

  //object is string

  List osList = new List();

  osList.Add("1");

  osList.Add("1");

  osList.Add("2");

  osList = osList.Distinct().ToList();

  List

  List intList = new List();

  intList.Add(1111);

  intList.Add(1111);

  intList.Add(2222);

  intList = intList.Distinct().ToList();

  List

  List idList = new List();

  idList.Add("1111");

  idList.Add("1111");

  idList.Add("2222");

  idList = idList.Distinct().ToList();

  引用类型去重

  private class NetworkCtrl

  {

  #region <属性>

  ///

  /// 网控对象ID

  ///

  public string NetCtrlId { get; set; }

  ///

  /// 业务对象ID

  ///

  public string InterID { get; set; }

  ///

  /// 业务操作

  ///

  public string OperationDesc { get; set; }

  #endregion <属性>

  }

  List ncList = new List();

  ncList.Add(new NetworkCtrl

  {

  InterID = "100148",

  NetCtrlId = "9cc2c432-56a9-b38d-11ee-794e3a9853e2",

  OperationDesc = "售后单-SH231103001-下推其它出库单"

  });

  ncList.Add(new NetworkCtrl

  {

  InterID = "100149",

  NetCtrlId = "9cc2c432-56a9-b38d-11ee-794e3a9853e2",

  OperationDesc = "售后单-SH231103002-下推其它出库单"

  });

  ncList.Add(new NetworkCtrl

  {

  InterID = "100148",

  NetCtrlId = "9cc2c432-56a9-b38d-11ee-794e3a9853e2",

  OperationDesc = "售后单-SH231103001-下推其它出库单"

  });

  var ncList1 = ncList.Distinct().ToList();

  var ncList2 = ncList.GroupBy(x => x.InterID).Select(y => y.First()).ToList();

  集合里有三条记录,其中两条重复。

  使用Distinct后,还有三条,说明distinct失败

  原因是,引用类型即使属性一样,引用地址是不一样的。

  只能用别的方式去避免。

  到此这篇关于C# list<T>去重的实现的文章就介绍到这了,更多相关C# list<T>去重内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

  您可能感兴趣的文章: