【发布时间】:2018-06-30 14:55:28
【问题描述】:
int propertyCount = PropertyHandler.PropertyList.Count(x => x.Owner == charData.CharacterData.CharacterID && !x.IsRegistered);
此行检查有多少属性与所有者的 ID 相关联。我知道业主拥有 3 处房产。 Linq 函数的第二部分检查属性是否已注册。业主有 2 个已注册的财产,1 个未注册的财产。这意味着它应该返回值 1,但无论我尝试哪种类型的代码,它总是返回 3。
我尝试了以下功能:
int propertyCount = PropertyHandler.PropertyList.Count(x => x.Owner == senderdata.CharacterData.CharacterID && x.IsRegistered == false);
int propertyCount = PropertyHandler.PropertyList.Where(x => x.Owner == senderdata.CharacterData.CharacterID && x.IsRegistered == false).Count();
int propertyCount = PropertyHandler.PropertyList.Where(x => x.Owner == senderdata.CharacterData.CharacterID).Where(x => x.IsRegistered == false).Count();
我也尝试过在每个函数中不使用 == false 部分。它总是返回 3,即使它应该是 1。
[Column("IsRegistered")]
public bool IsRegistered { get; set; }
这是IsRegistered 的我的数据库列:
它显示了该列的结构,即tinyint。我不知道我还能尝试什么。我需要它返回正确的值 (1) 而不是 3。
【问题讨论】: