我有一个整数列表,如下所示
List<int> myCollection = new List<int> { 2625 };
我正在检查以下条件
if(myCollection.Count() == 1 && myCollection.Any(number=> number == 2625))
{
// Do something
}
如何优化查询以便我可以同时包含单个查询条件? 注意:MyCollection可能包含多个元素,因此我使用了Any()。
答案 0 :(得分:4)
一个明显的优化是使用List
实例属性:
if(myCollection.Count == 1 && myCollection[0] == 2625))
{
// Do something
}
答案 1 :(得分:1)
实际上,这里有一个查询。不是两个。由于您的收藏是一个列表,Count()
将被解析为列表的Count
属性。话虽如此,这里实际上不会发生任何事情
myCollection.Count() == 1
除了获取Count
的值。
唯一的查询在这里发生
myCollection.Any(number=> number == 2625)
此外,由于您检查Count
是否为1的第一个条件,如果不是,则根本不会评估Any
。 (这是因为我们使用了&&
)。
答案 2 :(得分:-1)
我不确定你为什么这么想 优化它,但如果有一个元素,为什么要使用.Any()。
你可以简单地做
if(myCollection.Count() == 1 && myCollection.Single() == 2625)
{
// Do something
}