[英]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.