【共享】根据属性名称去除集合重复项,该怎么解决
【共享】根据属性名称去除集合重复项
利用linq写个方法。根据属性名去除 集合重复项。欢迎大家探讨
------解决方案--------------------
------解决方案--------------------
去除重复项可以用 Enumerable.Distinct
利用linq写个方法。根据属性名去除 集合重复项。欢迎大家探讨
- C# code
public IList<T> FilterRepeat<T>(IList<T> t, string attName) { if (t.Count <= 0) return t; #region 查找attName所在的位置 int index = -1; for (int i = 0; i < t[0].GetType().GetProperties().Count(); i++) { if (t[0].GetType().GetProperties()[i].Name == attName) { index = i; break; } } #endregion if (index == -1) return t; IList<T> result = new List<T>(); var sr = from s in t group s by s.GetType().GetProperties()[index].GetValue(s, null); foreach (var group in sr) result.Add(group.ToList()[0]); return result; }
------解决方案--------------------
------解决方案--------------------
去除重复项可以用 Enumerable.Distinct