![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.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
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