0

我对列表中的内容和删除项目感到困惑。有人可以教我一些关于请的词吗?

items.Content(BsonItem) 如果项目匹配(_id)或者项目是 BsonItem(相同类型),则返回布尔值?

items.Remove(BsonItem) 删除传递并匹配的 BsonItem 还是删除找到的集合中的第一个 BsonItem?

在这些情况下:
如果 BsonItem 已存在于我的收藏中,我该如何获取?
我如何在不知道位置的情况下删除集合中的 BsonItem。?

我根据某些标准搜索将 BsonItem 从一个列表传递到另一个列表。谢谢

var itemtoReturn = items[RandomItem(items.Count())];
if (!show.Contains(itemtoReturn) && show.Count() < items.Count())
{
    returned.Add(itemtoReturn);
    //removed from the items
    items.Remove(itemtoReturn);
}
4

1 回答 1

0

我猜您的意思是询问 Items.Contains(BsonItem) 如果项目根据您的代码示例匹配是否返回布尔值?

.Contains(BsonItem) 将根据 BsonItem 的 IEquatable 实现检查是否相等。默认情况下,它会寻找相同的 BsonItem 实例,假设 BsonItem 是一个引用类型。

如果你想检查像 BsonItem.id == anotherBsonItem.id 这样的东西,你可以像这样使用 Where():

items.Where(o => o.id == anotherItem.id);

如果您不想自己实现 IEquatable,也可以使用它来检查是否存在:

items.Count(o => o.id == anotherItem.id) >= 1;

旁注:如果您决定实现 IEquatable,则还必须处理 GetHashCode

于 2011-03-07T14:58:08.307 回答