В этом коде ...
.Count(x => x.DayOfWeek != DayOfWeek.Saturday && x.DayOfWeek != DayOfWeek.Sunday);
... x
- это FileInfo
, у которого нет свойства DayOfWeek
. Вместо этого вам нужно использовать любое из трех *Time
свойств FileInfo
; глядя на условие, которое вы передали .Where()
, которое выглядит как CreationTime
...
int count = files.Count(x => x.CreationTime.DayOfWeek != DayOfWeek.Saturday && x.CreationTime.DayOfWeek != DayOfWeek.Sunday);
В качестве альтернативы, этот код можно заставить работать, используя .Select()
для получить только желаемое *Time
свойство ...
int count = files
.Select(f => f.CreationTime)
.Count(x => x.DayOfWeek != DayOfWeek.Saturday && x.DayOfWeek != DayOfWeek.Sunday);
В этом случае x
является DateTime
.
Кроме того, имейте в виду различия между старшими GetFiles()
метод и более новый EnumerateFiles()
метод ...
Методы EnumerateFiles
и GetFiles
отличаются следующим образом:
- Когда вы используете
EnumerateFiles
, вы можете начать перечисление коллекции FileInfo
объектов до того, как будет возвращена вся коллекция. - Когда вы используете
GetFiles
, вы должны подождать всю массив FileInfo
объектов, которые должны быть возвращены до того, как вы получите доступ к массиву.
Поэтому, когда вы работаете со многими файлами и каталогами, EnumerateFiles
может быть более эффективным.
EnumerateFiles()
хорошо подходит для такого вида поиска / фильтрации файловой системы и, как мне кажется, обычно предпочтительнее для использования. * 1 053 *