Самый быстрый способ подсчета коллекции при применении критериев - PullRequest
0 голосов
/ 25 февраля 2011

У меня есть словарь, который я уже загрузил из базы данных, которая содержит ключ oject клиента и значение Status, которое является Enum.То, что я хотел бы сделать, это подсчитать все элементы в словаре, которые имеют статус определенного типа перечисления, то есть "Отправлено".Каков наилучший способ сделать это, не возвращаясь к базе данных, или я должен вернуться к базе данных?Я действительно не хочу объезжать всю коллекцию.Я не могу использовать linq, так как я сейчас использую .Net 2.0

public Dictionary<Customer, Status> DistributionList

Большое спасибо заранее.

Ответы [ 2 ]

2 голосов
/ 25 февраля 2011

Если вам нужно количество элементов в словаре с определенным значением, вы не можете избежать зацикливания списка:

int count = 0;
foreach(KeyValuePair<Customer,Status> kvp in DistributionList) {
    if(kvp.Value == Status.Sent) count++;
}
2 голосов
/ 25 февраля 2011

Не могли бы вы использовать лямбда-функцию?например:

using System.Linq;

int sentCount = DistributionList.Values.Count(s => s.Status == sent);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...