欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

【转载】C#中通过Distinct方法对List集合进行去重

程序员文章站 2022-05-15 13:46:50
在C#的List集合对象中,可以使用Distinct方法来对List集合元素进行去重,如果list集合内部元素为值类型,则Distinct方法根据值类型是否相等来判断去重,如果List集合内部元素为引用类型变量,则是判断相同引用的对象为相同进行List集合元素去重操作。 (1)值类型的List

在c#的list集合对象中,可以使用distinct方法来对list集合元素进行去重,如果list集合内部元素为值类型,则distinct方法根据值类型是否相等来判断去重,如果list集合内部元素为引用类型变量,则是判断相同引用的对象为相同进行list集合元素去重操作。

(1)值类型的list<int>集合对象intlist,内部元素为1,1,2,2,3,4,5等这几个元素。对intlist对象进行去重可使用下列语句:

  list<int> intlist= new list<int>() { 1, 1,2,2,3,4,5};
 intlist= intlist.distinct().tolist();

经过上述distinct方法去重处理并重新赋值后,intlist集合内部元素为:1,2,3,4,5。

(2)针对引用类型的distinct方法去重,则是判断list集合中的对象引用地址是否一致,不一致的话为不同的两个对象,即使2个对象的每个属性值都一样的情况下。

   list<testmodel> testlist = new list<consoleapplication1.testmodel>();
   testlist.add(new testmodel()
   {
       index=1,
       name="index1"
   });
   testlist.add(new testmodel()
   {
       index = 2,
       name = "index2"
   });
   testlist.add(new testmodel()
   {
       index = 2,
       name = "index2"
   });
   testlist = testlist.distinct().tolist();

上述程序语句中,虽然list集合testlist中的第2个元素和第3个元素的属性值完全一样,但这2个元素依旧是不同的对象,因此在调用distinct()方法去重后重新赋值,testlist依旧不变。

备注:原文转载自博主个人站it技术小趣屋,原文链接c#中通过distinct方法对list集合进行去重_it技术小趣屋