繁体   English   中英

LINQ优化使用对整数集合的单个查询

[英]LINQ optimization using single query on collection of integers

我有一个整数列表,如下所示

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

我正在检查以下情况

if(myCollection.Count() == 1 && myCollection.Any(number=> number == 2625))
{
        // Do something
}

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

一种明显的优化方法是使用List实例属性:

if(myCollection.Count == 1 && myCollection[0] == 2625))
{
        // Do something
}

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

myCollection.Count() == 1 

除了获得Count的值之外。

唯一的查询发生在这里

myCollection.Any(number=> number == 2625)

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

我不确定为什么要优化此设置,但是如果有单个元素,为什么要使用.Any()。

你可以做

if(myCollection.Count() == 1 && myCollection.Single() == 2625)
 {
        // Do something
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM