whereCriterion method
Implementation
FastSeekListCSV whereCriterion(LoadCriterion criterion) {
final List<int> matchedIndices = [];
for (final requestedField in criterion.requestedFields) {
matchedIndices.add(
header.indexWhere((field) => field.name == requestedField),
);
}
final List<ListRecord> newRecordIndex = [];
for (final individualRecordIndex in recordIndex) {
for (final record in individualRecordIndex) {
if (criterion.criterion(
matchedIndices
.map((e) => e == -1 ? null : record[e])
.toList(growable: false),
)) {
newRecordIndex.add(record);
}
}
}
return FastSeekListCSV.fromListCSV(
ListCSVFile(header: header, records: newRecordIndex),
);
}