110,534
社区成员
发帖
与我相关
我的任务
分享
List<string> _s = new List<string>();
_s.Add("a");
_s.Add("b");
_s.Add("v");
_s.Add("a");
_s.Add("b");
_s.Add("a");
List<string> _ns = new List<string>();
_s.Sort();
int _l = _s.Count;
for (int i = 0; i < _l - 1; i++)
{
if (!_s[i].Equals(_s[i + 1]))
{
_ns.Add(_s[i]);
}
}
if (!_s[_l - 2].Equals(_s[_l - 1]))
_ns.Add(_s[_l - 1]);
Console.Read();
1 #region 过滤重复数据
2 public delegate bool EqualsComparer<T>(T x, T y);
3 /// <summary>
4 /// 过滤重复数据
5 /// </summary>
6 public class Comparint<T> : IEqualityComparer<T>
7 {
8 private EqualsComparer<T> ec;
9 public Comparint() { }
10 public Comparint(EqualsComparer<T> e)
11 {
12 this.ec = e;
13 }
14 #region IEqualityComparer<BudgetBE> 成员
15
16 public bool Equals(T x, T y)
17 {
18 if (null != this.ec)
19 return this.ec(x, y);
20 else
21 return false;
22 }
23
24 public int GetHashCode(T obj)
25 {
26 return obj.ToString().GetHashCode();
27 }
28
29 #endregion
30 }
31 #endregion
使用时:
1 list.Distinct(new Comparint<自定义类型>(
2 delegate (自定义类型 x, 自定义类型 y)
3 {
4 if (null != x && null != y)
5 return x.属性 == y.属性;
6 return false;
7 }
8 ));