是否可以编写此代码,以便与具有空值的对象(x)进行比较时返回列表中具有父属性为null的项目家长?Enumerable.FirstOrDefault方法是否可能处理空参数
MyObject obj = objList.FirstOrDefault(o => n.Parent.Equals(x.Parent));
假设“等于”方法被正确地重写时,其中存在在“objList”用空父项失败 - “对象引用不设置为一个对象的一个实例,”用例外。
我会假设发生,因为如果n.Parent为null,您不能调用它的Equal方法。
反正我现在使出这种这种方法:
MyObject obj = null;
foreach (MyObject existingObj in objList)
{
bool match = false;
if (x.Parent == null)
{
if (existingObj.Parent == null)
{
match = true;
}
}
else
{
if (existingObj.Parent != null)
{
if (x.Parent.Equals(existingObj.Parent))
{
match = true;
}
}
}
if (match)
{
obj= existingObj;
break;
}
因此,尽管它的工作,这是不是很优雅。