建议你用字典的方法处理。[C#] 纯文本查看 复制代码 /// <summary>
/// 在页面请求列表
/// </summary>
public ConcurrentDictionary<string, obj> objlist= new ConcurrentDictionary<string, obj>();
/// <summary>
/// 添加
/// </summary>
/// <param name="obj">对象</param>
public void Login(obj o)
{
objlist[o.id] =o;
}
用这种方法,如果有重复的可以直接覆盖
如果你非要使用你现的方法,我建议你添加的时候不要检查是否有重复,因为这样量太大了,不如等全部添加完之后再写个去重复的方法一次性解决这样很快很多。
[C#] 纯文本查看 复制代码 Set set = new HashSet();
set.addAll(list);
到这一步,已经利用set的特性去重了。
接下来再把去重后的集合放到一个新的list去即可
List newlist = new ArrayList();
newlist.addAll(set);
或者可以使用Linq
[C#] 纯文本查看 复制代码 //导入linq命名空间, 然后distinct一下就可以了. 关键代码如下:
using System.Linq;
//比如,list<object>实例为list
var obj = list.Distinct();
//或者麻烦点要根据list<object>的字段xxx过滤就是
var obj_1=from p in list select p.xxx distinct();
你参考下吧
|