首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于整数集合的单查询LINQ优化

基于整数集合的单查询LINQ优化
EN

Stack Overflow用户
提问于 2015-07-30 11:36:23
回答 3查看 94关注 0票数 0

我有一个整数列表如下

List<int> myCollection = new List<int> { 2625 };

我正在检查下面的情况

代码语言:javascript
复制
if(myCollection.Count() == 1 && myCollection.Any(number=> number == 2625))
{
        // Do something
}

我如何优化我的查询,使我可以包含两个条件,单一查询?注意: MyCollection可能包含多个元素,因此我使用了Any()。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-07-30 11:39:11

一个明显的优化是使用List实例属性:

代码语言:javascript
复制
if(myCollection.Count == 1 && myCollection[0] == 2625))
{
        // Do something
}
票数 4
EN

Stack Overflow用户

发布于 2015-07-30 11:38:35

实际上,这里有一个查询。不是两个。因为您的集合是一个列表,所以Count()将被解析为list的Count属性。话虽如此,这里什么也不会发生

代码语言:javascript
复制
myCollection.Count() == 1 

除了得到Count的值之外。

唯一的查询发生在这里

代码语言:javascript
复制
myCollection.Any(number=> number == 2625)

此外,由于第一个条件是检查Count是否为1,如果不是,则根本不会对Any进行评估。(这是因为我们使用了&&)。

票数 1
EN

Stack Overflow用户

发布于 2015-07-30 11:45:23

我不知道为什么要优化它,但是如果有一个元素,为什么要使用.Any()。

你可以简单地

代码语言:javascript
复制
if(myCollection.Count() == 1 && myCollection.Single() == 2625)
 {
        // Do something
 }
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31722714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档