C# list<T>去重的实现
目录
值类型去重
List
object is int
//object is int
List
ointList.Add(1);
ointList.Add(1);
ointList.Add(2);
ointList = ointList.Distinct().ToList();
object is decimal
//object is decimal
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.Add('a');
ocharList.Add('a');
ocharList.Add('b');
ocharList = ocharList.Distinct().ToList();
object is bool
//object is bool
List
oboolList.Add(true);
oboolList.Add(false);
oboolList.Add(true);
oboolList = oboolList.Distinct().ToList();
object is string
//object is string
List
osList.Add("1");
osList.Add("1");
osList.Add("2");
osList = osList.Distinct().ToList();
List
List
intList.Add(1111);
intList.Add(1111);
intList.Add(2222);
intList = intList.Distinct().ToList();
List
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.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>去重内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
- .NET Core系列之MemoryCache 初识
- 007手机一键Root(安机网一键Root) v3.0 官方最新版 一键ROOT您的Android手机
- 12306密码被盗了怎么办?12306密码外泄解决方法
- 12个字的qq网名
- 150M迷你型无线路由器怎么设置?
- 192.168.1.1打不开怎么办?路由器192.168.1.1打不开的原因以及解决办法
- 2011年电子报合订本 电子报 编辑部 中文 PDF版 [84M]
- 2015年1月15日小米新旗舰发布会现场图文直播
- 2016.3.1vivo Xplay5新品发布会现场视频直播 优酷直播
- 2016华为P9发布会视频直播地址 4月15日华为P9国行发布会直播