gpt4 book ai didi

c# - 在 LINQ 中混合 Any() 和 First()?

转载 作者:太空狗 更新时间:2023-10-29 18:01:13 25 4
gpt4 key购买 nike

首先,我是 LINQ 的菜鸟!然后,问题是我有一个集合:

  1. 要么不包含我的 ID(字符串)
  2. 或者只包含一次

我想使用 Where 但我不喜欢必须执行的 if 指令...所以这是我的代码:

if (MyCollection.Any(rm => rm.BaseName == rbName))
{
var tmp = MyCollection.First(rm => rm.BaseName == rbName);
}

这行得通,但我真的觉得这不是我应该用 LINQ 做的方式......有什么建议吗?

最佳答案

非唯一实体答案(在多个实例上抛出异常)

使用SingleOrDefault .这将返回唯一项(如果存在),如果不存在则返回 null,如果存在多个则抛出异常。

var tmp = MyCollection.SingleOrDefault(rm => rm.BaseName == rbName);

唯一属性答案(永远不会有多个实例)

如果您的系统设置为 BaseName 是一个唯一的实体,用户 FirstOrDefault,如果有多个,这不会抛出异常,因为它将停止第一个实例,但系统将设计为永远不会有相同的实例,因此这是可以接受的(并且减少了时间)。

var tmp = MyCollection.FirstOrDefault(rm => rm.BaseName == rbName);

关于c# - 在 LINQ 中混合 Any() 和 First()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8800802/

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