Оптимизация обработки больших файлов с помощью более 250 тысяч строк и более 350 правил проверки.C#

Место общения программистов C#
Anonymous
Оптимизация обработки больших файлов с помощью более 250 тысяч строк и более 350 правил проверки.

Сообщение Anonymous »

У меня есть приложение WPF, которое загружает большие файлы Excel/CSV (около 250 000 строк), а затем запускает около 357 методов проверки данных.
Текущий процесс:

Код: Выделить всё

string filePath = openFileDialog.FileName;
string fileExtension = Path.GetExtension(filePath);

DataTable dataTable = ReadExcel(filePath, fileExtension);

var sourceData = ReadExcelDirect(filePath);

processedData = (from item in sourceData
select new ProcessedRow
{
// many mapped properties
}).ToList();
Затем я запускаю множество методов проверки, например:

Код: Выделить всё

ValidateRuleA(processedData);
ValidateRuleB(processedData);
ValidateRuleC(processedData);
ValidateRuleD(processedData);
ValidateRuleE(processedData);
Каждое правило содержит несколько проверок регулярных выражений по большому полю объединенной строки:

Код: Выделить всё

private void ValidateRuleA(IEnumerable
 inputData)
{
var queryResult = (from row in inputData
where
Regex.IsMatch(row.ALL_CODES, @"\bA12[01346]\b")
&& (Regex.IsMatch(row.ALL_CODES, @"\bB45[0-9]\b")
|| Regex.IsMatch(row.ALL_CODES, @"\bC78[0-9]\b"))
select new ValidationResult
{
ID = row.ID,
GROUP_ID = row.GROUP_ID,
ERROR = "Validation Error",
ERROR_REF = "RULE_A"
}).ToList();
}
Какая архитектура лучше всего подходит для эффективной обработки правил проверки 357?

Вернуться в «C#»