如果对象已经在列表中,如何将对象取回?

时间:2016-12-13 18:48:09

标签: c# list

我正在检查一个对象是否已经在我的列表中,该对象有一个带有值的属性。如果对象已经在列表中,我希望将对象返回并将值一起添加,然后将其放回列表中。

这是我的代码:

if (!uniqueList.Contains(element))
{
    uniqueList.Add(element);
}
else
{
    elementOld = uniqueList ??
    elementOld.value += element.value;
    uniqueList.add(elementOld);
}

我只需要帮助两个?在代码中。

1 个答案:

答案 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