自定义集合去重复

class Program
    {
        
static void Main(string[] args)
        {
            var list 
= new List<TempData>
            { 
              
new TempData{ name="a", tel="010", address="add"},
              
new TempData{ name="a", tel="010", address="add"},
              
new TempData{ name="a1", tel="010", address="add"},
              
new TempData{ name="a1", tel="010", address="add"},
              
new TempData{ name="a2", tel="010", address="add"}
            };

            Console.WriteLine(
"name\ttel\taddress");
            list.Distinct(
new DataRowComparer()).ToList().ForEach(l => Console.WriteLine("{0}\t{1}\t{2}", l.name, l.tel, l.address));
            
//list.ForEach(l => Console.WriteLine("{0}\t{1}\t{2}", l.name, l.tel, l.address));
        }

        
public class TempData
        {
            
public string name { getset; }
            
public string tel { getset; }
            
public string address { getset; }
        }

        
public class DataRowComparer : IEqualityComparer<TempData>
        {
            
public bool Equals(TempData t1, TempData t2)
            {
                
return (t1.name == t2.name && t1.tel == t2.tel && t1.address == t2.address);
            }
            
public int GetHashCode(TempData t)
            {
                
return t.ToString().GetHashCode();
            }
        }  
    }
posted @ 2011-08-30 14:28  itliyi  阅读(235)  评论(0编辑  收藏  举报