gpt4 book ai didi

c# - List.Find() 即使谓词匹配也返回 null

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

我只附上一张图片以供引用。我很难过。在调试器中,这些值肯定彼此相等,但是 Find<T>仍然返回 null 和 Exists<T>仍然返回错误。供引用:UserRepository工具 IEnumerable<T>其中 TDomainUser .

Debug screencap

最佳答案

问题在于 CommandArgument 的类型是 object,因此它正在执行引用身份检查。 (我很惊讶这没有给你一个编译时警告。)

您可以将 CommandArgument 转换为 string,或者使用 Equals:

u => u.Username == (string) args.CommandArgument

u => Equals(u.Username, args.CommandArgument)

(与 u.Username.Equals(args.命令参数).)

虽然我不会将序列转换为列表 - 我只是使用 LINQ 代替:

DomainUser toRemove =
repo.FirstOrDefault(u => u.Username == (string) args.CommandArgument);

关于c# - List.Find<T>() 即使谓词匹配也返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17574126/

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