gpt4 book ai didi

c# - LINQ ANY() 与 First() 和 FirstOrDefault()

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

我写过这样的代码

TotalCashIn = totals != null && totals.Any() ? totals.First().TotalCashIn : null;

我因为这段代码而受到指责,并被告知要这样写

TotalCashIn = totals != null ? totals.FirstOrDefault().TotalCashIn : null;

但我想知道如果 totals 计数为 0,我不会得到异常吗? 我是否还需要使用 .Any().Count() 进行检查?

最佳答案

您可以使用 null-conditional operator为了让这一切变得更简单,假设 totals 的元素类型是一个引用类型:

TotalCashIn = totals?.FirstOrDefault()?.TotalCashIn;

有了这个:

  • 如果 totals 为空,则由于第一个空条件运算符,整体结果为空
  • 如果 totals 为空,FirstOrDefault() 将返回 null,因此由于第二个 null 条件运算符,整体结果为 null
  • 否则,结果是第一个元素的TotalCashIn属性

关于c# - LINQ ANY() 与 First() 和 FirstOrDefault(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48880199/

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