Оптимизация кода - C# (183223)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Имею такую задачу: проходиться по коллекции файлов, и проводить фильтр по определённым условиям. Причём условия формируются непосредственно перед проходом по всем файлам. Выглядит сейчас это примерно так:
  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;
}
max_size,min_size,filenameYES,filenameNO и другие условия определяются ДО прохода по всем файлам. Для того чтобы ускорить выполнение кода, мне как-то нужно вывести проход по всем файлам в отдельный метод, и вызывать этот метод уже только с теми условиями, которые определены. То есть чтобы в каждом файле программа не думала какие условия заданы, а сразу проверяла только заданные условия. Просьба подсказать как сие осуществить

Решение задачи: «Оптимизация кода»

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);
        }
    }
}

ИИ поможет Вам:


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

Оцени полезность:

9   голосов , оценка 3.889 из 5