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