我有一個字典,我已經加載形式的數據庫,其中包含一個客戶的關鍵和一個狀態值是一個枚舉。我想要做的是計算字典中具有某種枚舉類型狀態的所有項目,即「已發送」。在不返回數據庫的情況下進行此操作的最佳方式是什麼,還是必須返回數據庫?我真的不想循環整個集合。我不能使用linq作爲即時通訊使用.net 2.0最快的方式來計數集合,同時適用標準
public Dictionary<Customer, Status> DistributionList
非常感謝提前。
我有一個字典,我已經加載形式的數據庫,其中包含一個客戶的關鍵和一個狀態值是一個枚舉。我想要做的是計算字典中具有某種枚舉類型狀態的所有項目,即「已發送」。在不返回數據庫的情況下進行此操作的最佳方式是什麼,還是必須返回數據庫?我真的不想循環整個集合。我不能使用linq作爲即時通訊使用.net 2.0最快的方式來計數集合,同時適用標準
public Dictionary<Customer, Status> DistributionList
非常感謝提前。
如果你需要的元素的計數與特定值的字典,你不能避免循環,雖然名單:
int count = 0;
foreach(KeyValuePair<Customer,Status> kvp in DistributionList) {
if(kvp.Value == Status.Sent) count++;
}
您可以使用lambda函數嗎?例如:
using System.Linq;
int sentCount = DistributionList.Values.Count(s => s.Status == sent);
嗨,喬恩,不能使用linq,如我的問題所述。 – gdp 2011-02-25 12:43:06
糟糕公平點!在這種情況下,我可能會通過循環DistributionList.Values來簡化fencliff和bif的答案,因爲這些是狀態,而不是在KVP上循環。 – 2011-02-25 21:12:11
你必須要麼寫一個循環或使用LINQ 。請記住,編寫循環將是最快的方法 - 無疑比查詢數據庫更快。 – Gabe 2011-02-25 12:32:04
好的循環,然後。謝謝。 – gdp 2011-02-25 12:43:58