我有一个整数列表如下
List<int> myCollection = new List<int> { 2625 };
我正在检查下面的情况
if(myCollection.Count() == 1 && myCollection.Any(number=> number == 2625))
{
// Do something
}我如何优化我的查询,使我可以包含两个条件,单一查询?注意: MyCollection可能包含多个元素,因此我使用了Any()。
发布于 2015-07-30 11:39:11
一个明显的优化是使用List实例属性:
if(myCollection.Count == 1 && myCollection[0] == 2625))
{
// Do something
}发布于 2015-07-30 11:38:35
实际上,这里有一个查询。不是两个。因为您的集合是一个列表,所以Count()将被解析为list的Count属性。话虽如此,这里什么也不会发生
myCollection.Count() == 1 除了得到Count的值之外。
唯一的查询发生在这里
myCollection.Any(number=> number == 2625)此外,由于第一个条件是检查Count是否为1,如果不是,则根本不会对Any进行评估。(这是因为我们使用了&&)。
发布于 2015-07-30 11:45:23
我不知道为什么要优化它,但是如果有一个元素,为什么要使用.Any()。
你可以简单地
if(myCollection.Count() == 1 && myCollection.Single() == 2625)
{
// Do something
}https://stackoverflow.com/questions/31722714
复制相似问题