gpt4 book ai didi

linq - SingleOrDefault()在多个元素上引发异常

转载 作者:行者123 更新时间:2023-12-03 15:04:36 24 4
gpt4 key购买 nike

每当我这样获取时,我都会遇到异常

Feature f = o.Features.SingleOrDefault(e => e.LinkName == PageLink);


因为这可以返回一个或多个元素。我可以用来解决此问题的替代方法是什么?

最佳答案

Single和SingleOrDefault用于在序列中存在多个匹配项时抛出。这样的结果是必须在完成之前迭代整个序列。听起来这不是您想要的。尝试使用FirstOrDefault:

Feature f = o.Features
.FirstOrDefault(e => e.vcr_LinkName == PageLink && e.bit_Activate == true);


(通常)效果会更好,因为一旦找到匹配项,它就会完成。

当然,如果您实际上想保留多个元素,那么Where子句会更合适:

IEnumerable<Feature> fs = o.Features
.Where(e => e.vcr_LinkName == PageLink && e.bit_Activate == true);

关于linq - SingleOrDefault()在多个元素上引发异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3185067/

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