遍历对象列表,检查是否定义了它们的属性

时间:2018-11-06 14:51:16

标签: c# listiterator

我有一个对象列表。有没有办法遍历列表并检查是否未定义其任何属性?

我尝试过

list.FindAll(p => p.property == null);

但是由于所需属性是双倍,我收到警告,该表达式将始终为false。

3 个答案:

答案 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