我有一个对象列表。有没有办法遍历列表并检查是否未定义其任何属性?
我尝试过
list.FindAll(p => p.property == null);
但是由于所需属性是双倍,我收到警告,该表达式将始终为false。
答案 0 :(得分:1)
因为double
不能为空,所以可以使用double?
。
然后,继续您的逻辑,它是null
表示未定义
答案 1 :(得分:1)
如果该属性不能为0。以Yojin响应为基础,最简单的方法是检查0而不是null
。
list.FindAll(p => p.property == 0);
当然,如果该属性在任何时候都可以等于0,则应避免这种情况。 当然有可以为空的类型。您的财产的声明将是这样的:
public double? MyProperty { get; set; }
如果该属性没有任何属性,则默认为null
。
答案 2 :(得分:0)
值类型永远不能为null,因此在说
的情况下double x;
Console.WriteLine(x.ToString());
您将看到'0'被写出。
如果您有兴趣,请查看https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/value-types