Try overriding Equals
as such:
public override bool Equals(object obj)
{
var myItem = obj as Item;
return !ReferenceEquals(myItem, null) && Equals(myItem);
}
public bool Equals(Item myItem)
{
return string.Equals(name, myItem.name, StringComparison.Ordinal) && string.Equals(itemType, myItem.itemType, StringComparison.Ordinal);
}