- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
是否有 Linq 方法来检查集合是否至少包含 x 项?.Any()
很棒,因为一旦找到一个项目,它就会为真,程序将不需要去获取集合中可能存在的任何其他内容。是否有 ContainsAtLeast()
方法 - 或者如何实现它以使其表现得像 .Any()
?
我要求的是像 .Any()
这样的行为,这样我就可以避免使用 .Count()
并执行 .AtLeast(4)
,所以如果它找到 4 个项目,它返回 true。
最佳答案
您可以调用 Skip
为最小数减1,然后检查是否还有剩余:
public static bool AtLeast(this IEnumerable<T> source, int minCount)
{
return source.Skip(minCount - 1).Any();
}
请注意,对于大量计数,如果您的源代码实现了 ICollection<T>
, 这可能比使用 Count
慢得多.所以你可能想要:
public static bool AtLeast(this IEnumerable<T> source, int minCount)
{
var collection = source as ICollection<T>;
return collection == null
? source.Skip(minCount - 1).Any() : collection.Count >= minCount;
}
(您可能还想检查非通用 ICollection
。)
关于c# - 集合的 Linq 等价物至少包含 x 个项目;像 .Any() 而是 .AtLeast(int),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32616414/
我的 SQL 查询有错误; mysql_query(" SELECT * from houses WHERE pcode=( SELECT outcode,(SQRT((pow((`x` -$x
我是 Node 和 sinon 的新手,我在测试下面的组件时遇到了麻烦。我想检查 res.status 和 res.send 是否在组件内部被调用。 待测试组件 module.exports = {
我正在尝试通过 GET 方法将模板中的 meeting 对象的数据发送到 View 。为了给属性 meeting.date 一个更简单的别名,即 date 我使用了 with 模板标签。但它以 Tem
我需要验证 VARCHAR 字段。条件是:字段必须包含至少 2 个字母数字字符 所以请任何人给出上述条件的正则表达式 我在下面写了表达式,但它会检查至少 2 个字母是字母数字。如果我的输入不是字母数字
我正在使用Mockito模拟单元测试用例,并且正在获取以下异常(exception) org.mockito.exceptions.misusing.NotAMockException: Argume
是否有 Linq 方法来检查集合是否至少包含 x 项?.Any() 很棒,因为一旦找到一个项目,它就会为真,程序将不需要去获取集合中可能存在的任何其他内容。是否有 ContainsAtLeast()
我需要使用 jQuery 验证插件验证是否从复选框列表中至少选择了一个复选框。由于复选框是 ASP.NET GridView 控件的一部分,因此这些复选框的名称会有所不同,这使得验证插件的规则设置变得
这个正则表达式让我发疯。我认为这会起作用。但它与 link here 中的任何内容都不匹配 正则表达式是: ^[a-zA-Z](?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.
我有一个 Activity ,其中有 VideoView 来播放视频。 我只是将 uri 设置为 videoview,如下所示。 videoView.setVideoURI(videoUri); 经
我需要密码字段的正则表达式。 要求是: 密码长度必须在8到20个字符之间 必须包含至少一个字母和一个数字以及来自!@#$%^&*() 的特殊字符_+。 不应以特殊字符开头 我试过了 ^(?=.*[a-
我是一名优秀的程序员,十分优秀!