1 class Program  
 2     {  
 3         static void Main(string[] args)  
 4         {  
 5             List<User> users = new List<User>();  
 6             users.Add(new User("张三", "啊啊啊"));  
 7             users.Add(new User("张三", "哈哈哈哈哈哈"));//重复项,去重后将删掉  
 8             users.Add(new User("李四", "忐忐忑忑通天塔"));  
 9   
10             List<User>  List1 = users.Distinct().ToList();//通过User类的Equals实现去重  
11             List<User>  List2 = users.Where((x,i)=>users.FindIndex(z=>z.name == x.name) == i).ToList();//Lambda表达式去重  
12             List<User>  List3 = new List<User>();//通过循环方式去重  
13             foreach(User user in users)  
14             {  
15                 if( List3.Exists(x=>x.name==user.name) == false)  
16                 {  
17                      List3.Add(user);  
18                 }  
19             }  
20   
21             foreach(List<User> list in new Object[]{ List1, List2, List3})//打印出三个List的元素  
22             {  
23                 Console.Write(" List:\r\n");  
24                 foreach(User u in list)  
25                 {  
26                     Console.WriteLine("\t" + u.ToString());  
27                 }  
28             }  
29             Console.Read();  
30         }  
31     }  
32   
33     class User:IEquatable<User>//继承IEquatable接口,实现Equals方法。List就可以使用Distinct去重  
34     {  
35         public string name { get; set; }  
36         string address;  
37   
38         public User(string _name, string _address)  
39         {  
40             name = _name;  
41             address = _address;  
42         }  
43   
44         public override string ToString()  
45         {  
46             return string.Format("name:{0},\taddress:{1}", name, address);  
47         }  
48   
49         public bool Equals(User other)  
50         {  
51             return this.name == other.name;  
52         }  
53         public override int GetHashCode()  
54         {  
55             return name.GetHashCode();  
56         }  
57     }  

 

posted on 2018-04-09 11:01  逛园子$$$  阅读(979)  评论(0)    收藏  举报