我正在检查一个对象是否已经在我的列表中,该对象有一个带有值的属性。如果对象已经在列表中,我希望将对象返回并将值一起添加,然后将其放回列表中。
这是我的代码:
if (!uniqueList.Contains(element))
{
uniqueList.Add(element);
}
else
{
elementOld = uniqueList ??
elementOld.value += element.value;
uniqueList.add(elementOld);
}
我只需要帮助两个?在代码中。
答案 0 :(得分:2)
如果您知道对象在列表中,则可以使用IndexOf()
在列表中查找对象的位置。
else
{
int index = uniqueList.IndexOf(element);
var myElement = uniqueList[index];
//do whatever you want with it here, and you don't have to
//put it back afterwards, it will still be in your list.
}
编辑:正如Andrew指出的那样,如果您可以使用上面的代码找到列表中元素的索引,那么您已经在列表中引用了该项目。如果您没有对要查找的列表中的 exact 对象的引用,则必须比较它的成员才能找到匹配项,因为上面的代码将为索引返回-1