Оптимизация кода - C# (183223)
Формулировка задачи:
Здравствуйте. Имею такую задачу: проходиться по коллекции файлов, и проводить фильтр по определённым условиям. Причём условия формируются непосредственно перед проходом по всем файлам.
Выглядит сейчас это примерно так:
max_size,min_size,filenameYES,filenameNO и другие условия определяются ДО прохода по всем файлам. Для того чтобы ускорить выполнение кода, мне как-то нужно вывести проход по всем файлам в отдельный метод, и вызывать этот метод уже только с теми условиями, которые определены. То есть чтобы в каждом файле программа не думала какие условия заданы, а сразу проверяла только заданные условия. Просьба подсказать как сие осуществить
foreach (string f in FileList.MainList) { // max размер подходит? if (max_size != 0) continue ; // min размер подходит? if (min_size != 0) continue ; // Имя файла if (filenameYES!=null || filenameNO!=null) continue; // Имя папки if (pathnameYES != null || pathnameNO != null) continue; }
Решение задачи: «Оптимизация кода»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; namespace ConsoleApplication13 { public enum Condition { Condition1, Condition2, } public class SourceClass { public int Id { get; set; } public string Field1 { get; set; } public DateTime Field2 { get; set; } } class Program { static void Main(string[] args) { var source = new List<SourceClass>(); var condition = Condition.Condition1; Func<SourceClass, bool> predicate = x => false; if (condition == Condition.Condition1) predicate = x => x.Id > 0 && !string.IsNullOrEmpty(x.Field1); if (condition == Condition.Condition2) predicate = x => x.Field2 > DateTime.Now.AddDays(-3); var filteredSource = source.Where(predicate); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д