C# LINQ IEnumerable,其中未找到元素

C# LINQ IEnumerable,其中未找到元素,c#,linq,C#,Linq,我有一个班级项目列表list 我有一个类型为MyClass的单独对象 在我的列表中,我有一个此项的实例,但我的where语句失败 var home = Item.Find(23); var item = allitems.Where(i => i == home); 这个项目没有结果 allitems.Contains(主页)也会失败 我做错了什么?它们肯定是相同的项目吗?如果你有这种情况 var item1 = new Place(23); var item2 = new Place(

我有一个班级项目列表
list

我有一个类型为MyClass的单独对象

在我的列表中,我有一个此项的实例,但我的where语句失败

var home = Item.Find(23);
var item = allitems.Where(i => i == home);
这个项目没有结果

allitems.Contains(主页)
也会失败


我做错了什么?

它们肯定是相同的项目吗?如果你有这种情况

var item1 = new Place(23);
var item2 = new Place(23);
然后
item1!=项目2
。如果项目由某些属性标识,您可以尝试

allitems.Where(i => i.Id == home.Id)
在“Item”中重写Equals()也应该有效

var home = Item.Find(23);
var item = allitems.Where(i => i.Equals(home));

我已经完成了,谢谢。为什么项目1被认为与项目2不同?因为它们是不同的对象。除非重载,“==”比较身份而不是相等-你可以有两台在各个方面都相等的笔记本电脑,但它们仍然是不同的笔记本电脑。