Linq запрос к коллекции

275
04 января 2018, 20:34

Есть коллекция:

private Dictionary<string, cFiles> files= new Dictionary<string, cFiles>();

cFiles представляет из себя класс, в котором три поля: Status (enum), Name (string), Root (string) Как подсчитать количество элементов в коллекции с статусом Status.finished (enum)?

Answer 1

Используем свойство Value элемента словаря:

files.Where(x=>x.Value?.Status==Status.finished).Count();

Элвис-оператор ?. применим на случай, если в словаре будет неинициализированный экземпляр.

Answer 2

Можно воспользоваться множеством значений словаря (Dictionary.Values) и методом Count<TSource>(this IEnumerable<TSource>, Func<TSource, Boolean>), который принимает условие для подсчета.

Получится что-то вроде:

var finishedFilesCount = files.Values.Count(f=>f.Status == Status.Finished);
READ ALSO
Как выполнить команды с ожиданием?

Как выполнить команды с ожиданием?

Подскажите как разграничить выполнение команд, чтобы сначала выполнить удаление ключа в реестре, затем запуск внешнего приложения, после...

260
Процесс не закрывается

Процесс не закрывается

Не получается закрыть процесс из массива

302
Завершить процессы из папки AppData

Завершить процессы из папки AppData

У меня имеется список расширение которые нужно завершить ( и удалить файл )

240
TextBoxPlaceholder XAML WPF

TextBoxPlaceholder XAML WPF

Привет всемКак то я столкнулся с необходимостью сделать placeholder в textbox на wpf

248