C# list<T>去重

编程入门 行业动态 更新时间:2024-10-27 18:20:43

C# <a href=https://www.elefans.com/category/jswz/34/1770381.html style=list<T>去重"/>

C# list<T>去重

文章目录

  • C# list<T>去重
    • 值类型去重
      • List<object>
        • object is int
        • object is decimal
        • object is char
        • object is bool
        • object is string
      • List<int>
      • List<string>
    • 引用类型去重

C# list去重

值类型去重

List

object is int
//object is intList<object> ointList = new List<object>();ointList.Add(1);ointList.Add(1);ointList.Add(2);ointList = ointList.Distinct().ToList();

object is decimal
//object is decimalList<object> odecimalList = new List<object>();odecimalList.Add(1.25);odecimalList.Add(1.25);odecimalList.Add(2.25);odecimalList = odecimalList.Distinct().ToList();

object is char
            //object is charList<object> ocharList = new List<object>();ocharList.Add('a');ocharList.Add('a');ocharList.Add('b');ocharList = ocharList.Distinct().ToList();

object is bool
            //object is boolList<object> oboolList = new List<object>();oboolList.Add(true);oboolList.Add(false);oboolList.Add(true);oboolList = oboolList.Distinct().ToList();

object is string
            //object is stringList<object> osList = new List<object>();osList.Add("1");osList.Add("1");osList.Add("2");osList = osList.Distinct().ToList();

List

            List<int> intList = new List<int>();intList.Add(1111);intList.Add(1111);intList.Add(2222);intList = intList.Distinct().ToList();

List

            List<string> idList = new List<string>();idList.Add("1111");idList.Add("1111");idList.Add("2222");  idList = idList.Distinct().ToList();

引用类型去重

private class NetworkCtrl{#region <属性>/// <summary>/// 网控对象ID/// </summary>public string NetCtrlId { get; set; }/// <summary>/// 业务对象ID/// </summary>public string InterID { get; set; }/// <summary>/// 业务操作/// </summary>public string OperationDesc { get; set; }#endregion <属性>}
List<NetworkCtrl> ncList = new List<NetworkCtrl>();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>去重

本文发布于:2023-11-17 07:07:28,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1638613.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:list

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!