簡體   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