我有一个类型为Well的简单集合,其中还包含数据集
我从井集中获取数据集对象,如此
var dataset = well.Datasets.Single(u=> u.ID == datasetID);
if (dataset!=null)
{
well.Datasets.Contains(dataset);// returns false here
}
根据我的理解包含在这里假设在前一个语句中返回true我从同一个集合中获取此对象。
为什么它返回false?
答案 0 :(得分:1)
这种情况正在发生,因为您正在尝试搜索自定义对象。所以这里的比较不是基于价值的比较。对于C#编译器,您可以从
获取对象var dataset = well.Datasets.Single(u => u.ID == datasetID);
与 well 变量中的对象不同。
为了更好地理解,请检查对象比较在C#中的工作原理。