小编Asa*_*t0r的帖子

c#List.Exists返回true,返回"false && true"

所以我正在编写一个程序,对Listoperator的行为有点困惑.我有一个List,想知道它是否根据一些标准持有一个条目.现在让我们称它为List,obj具有以下属性:

public string PropA { get; set; }
public string PropB { get; set; }
public string PropC { get; set; }
public bool HasPropC { get; set; }
Run Code Online (Sandbox Code Playgroud)

现在我只想要一个真实的结果,如果PropA等于列表中的一个,如果列表中的属性具有PropC,它应该检查PropC,否则检查PropB.我用这段代码:

 if (List.Exists(x => {
       bool b = true;

       b = b && x.PropA.Equals(obj.PropA);
       b = b && x.HasPropC ? x.PropC.Equals(obj.PropC) : x.PropB.Equals(obj.PropB);

       return b;
}))
Run Code Online (Sandbox Code Playgroud)

在带有"PropA.Equals ..."的第一行之后,b被设置为false.但超越的界限再次成为现实.所以似乎有一个对象,即使它不是.我找到了一个解决方案,我将&& - Operator后面的第二行包装到括号中,但我仍然不知道为什么它是一个假的真正的.

你能给我一个暗示吗?

谢谢.

c# boolean list exists operator-keyword

1
推荐指数
1
解决办法
346
查看次数

标签 统计

boolean ×1

c# ×1

exists ×1

list ×1

operator-keyword ×1