8,497
社区成员
发帖
与我相关
我的任务
分享
var q = (
from c in list
where c.Class == 1
select new { c.Name, c.Class }
).Concat(
(from c in list
where c.Class == 2
select new { c.Name, c.Class }).Distinct());
public static void Main(string[] args)
{
var list = new List<User>() {
new User(){Name="张三",Age=1 },
new User(){Name="张三",Age=1 },
new User(){Name="李四",Age=2 },
new User(){Name="张三",Age=2 },
new User(){Name="张三",Age=2 },
};
var q = list.Where(x => x.Age == 1).Union(list.Where(x => x.Age == 2).Distinct(new userCompare())).ToList();
q.ForEach(x => Console.WriteLine(x.Name + ":" + x.Age));
Console.ReadLine();
}
class userCompare : IEqualityComparer<User>
{
public bool Equals(User x, User y)
{
return x.Name.Equals(y.Name)&&x.Age.Equals(y.Age);
}
public int GetHashCode(User obj)
{
return (obj.Name+obj.Age).GetHashCode();
}
}
public class User
{
public int ID { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public bool? IsChild { get; set; }
public User Clone()
{
return (User)this.MemberwiseClone();
}
}