自定义Linq的Distinct

ExpandedBlockStart.gif 代码
 1  using  System;
 2  using  System.Collections.Generic;
 3  using  System.ComponentModel;
 4  using  System.Data;
 5  using  System.Drawing;
 6  using  System.Linq;
 7  using  System.Text;
 8  using  System.Windows.Forms;
 9 
10  namespace  LinqTest
11  {
12       public   partial   class  Form1 : Form
13      {
14           public  Form1()
15          {
16              InitializeComponent();
17          }
18 
19           private   void  button1_Click( object  sender, EventArgs e)
20          {
21 
22              List < c111 >  _c  =   new  List < c111 > ();
23 
24              _c.Add( new  c111( " 1 " , " 2 " ));
25              _c.Add( new  c111( " 11 " , " 22 " ));
26 
27              List < c111 >  _c2 = new  List < c111 > ();
28              _c2.Add( new  c111( " 1 " , " 3 " ));
29              _c2.Add( new  c111( " 11 " , " 22 " ));
30 
31              var vvv  =  (from o  in  _c
32                         select o).Concat((from c  in  _c2 select c)).Distinct( new  DistinctPersons());
33 
34 
35          }
36 
37 
38 
39      }
40 
41       public   class  DistinctPersons : IEqualityComparer < c111 >
42      {
43           public   bool  Equals(c111 x, c111 y) 
44          {
45               if  (x  ==   null   ||  y  ==   null )     // optional
46               return   false
47               else
48               return  x.a ==  y.a; 
49          }
50           public   int  GetHashCode(c111 objPerson) 
51          {
52               return  objPerson.a.GetHashCode(); 
53          }
54      } 
55 
56 
57       public   class  c111
58      {
59           public  c111( string  _a,  string  _b)
60          {
61              a  =  _a;
62              b  =  _b;
63          }
64           public   string  a
65          {
66               get ;
67               set ;
68          }
69           public   string  b
70          {
71               set ;
72               get ;
73          }
74      }
75  }
76 

 

转载于:https://www.cnblogs.com/wangzhq/archive/2010/01/19/1651428.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值