gpt4 book ai didi

c# - 如何在空列表上使用空条件运算符?

转载 作者:太空狗 更新时间:2023-10-29 18:34:45 26 4
gpt4 key购买 nike

我有一个对象(在此示例中保持简单),例如:

public class MyObject
{
public ICollection<OtherObject> OtherObjects { get; set; }
}

public class OtherObject
{
public bool IsValid() { return true; }
}

目前在我的代码中我这样做:

bool ok = false;
if (myObject.OtherObjects != null && myObject.OtherObjects.Count > 0)
{
var last = myObject.OtherObjects.Last();
ok = last.IsValid();
}

现在,使用 C#6.0,可以在一行代码中完成此操作:

bool? ok = myObject.OtherObjects?.Last()?.IsValid();

但是,在这种情况下,空条件运算符将不起作用,因为上面返回了一个异常

The sequence contains no elements.

那么在这种情况下,我是否还需要使用旧方法来检查空值,而不是使用空值条件运算符的新方法?

或者有更好的方法吗?

最佳答案

如@Jeroen 所述,null 条件运算符与 LastOrDefault() 完美结合。

你可以简单地做:

bool ok = myObject.OtherObjects?.LastOrDefault()?.IsValid() ?? false;

关于c# - 如何在空列表上使用空条件运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37676572/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com