急!ArrayList的元素是类对象,Contains怎样判断元素是否已存在?

NewPlayer2010 NewPlayer2010 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
新人,没分,请见谅!

为了不让ArrayList中不包含同样的元素,

ArrayList中,已经包含了某个元素,但是Contains判断的时候,还是返回false
导致元素被重复加入List.

另做的例子里面,是没有问题的,但是这里就是不行,高手帮忙推测一下,出问题的地方。

调用AddTask函数,是在另一个线程中。


//============================================================
// 功 能 : 增加一个附件转换任务(public函数)
// 参 数 : TTaskInfo i_AttachInfo <- 任务信息
// 返回值 : 无
//============================================================
public static void AddTask(TTaskInfo i_AttachInfo)
{
try
{
//判断任务类型
if (i_AttachInfo.m_intPriority == CTASK.HIGH_TASK)
{
//将任务添加到列表
if (m_SocketTaskList.Contains(i_AttachInfo) == false)
{
lock (m_SocketTaskList)
{
m_SocketTaskList.Add(i_AttachInfo);
}
}
}
else if (i_AttachInfo.m_intPriority == CTASK.NORMAL_TASK)
{
//将任务添加到列表
if (m_DBTaskList.Contains(i_AttachInfo) == false)
{
lock (m_DBTaskList)
{
m_DBTaskList.Add(i_AttachInfo);

Console.WriteLine("m_DBTaskList.Count = " + m_DBTaskList.Count);
for (int i = 0; i < m_DBTaskList.Count; i++)
{
Console.WriteLine(((TTaskInfo)m_DBTaskList[i]).GetInfo());
}
}
}
}

...全文

相关推荐

评论 25
收藏 已收藏
分享
返回顶部
NewPlayer2010
C# 111,129 成员 642,539 内容