Нужен алгоритм для поиска наивысшего соответствия при сравнении списка строкC#

Место общения программистов C#
Ответить
Anonymous
 Нужен алгоритм для поиска наивысшего соответствия при сравнении списка строк

Сообщение Anonymous »

У меня есть функция, которая импортирует столбцы с листа Excel, который я затем помещаю имена столбцов в список. < /p>

У меня есть список «системных столбцов», в которых импортированные столбцы в конечном итоге будут сопоставлены. /> Например < /p>

После импорта их столбцов я мог бы иметь следующий список импортированных столбцов: < /p>

List importedColumnNames = importService.ResolveColumnNames();

Console.WriteLine(importedColumnNames[0]); //Prints 'Security_ID'
Console.WriteLine(importedColumnNames[1]); //Prints 'User_ID'
Console.WriteLine(importedColumnNames[2]); //Prints 'Date'
< /code>

* Примечание < /em>*Код для записи в консоли состоит в том, чтобы показать некоторые из примеров импортированных имен столбцов.List systemColumnNames = GetSystemColumnNames();

Console.WriteLine(systemColumnNames[0]); //Prints 'Security Identifier' or 'Security ID'
Console.WriteLine(systemColumnNames[1]); //Prints 'User' or 'User Identifier'
Console.WriteLine(systemColumnNames[2]); //Prints 'Item Date' or 'Datetime'
< /code>

Как только они импортируются, я хотел бы найти способ сопоставить ImportcolumnNames с наиболее близким значением имени столбца системы. < /p>

Dictionary matchedImportedColumns = MatchService.Match(importedColumnNames,systemColumnNames);

foreach(var item in matchedImportedColumns)
{
Console.WriteLine("Imported Value '{0}' was matched to System Value '{1}',item.Key,item.Value);
}
< /code>

Это, надеюсь, печатать что -то вроде следующего: < /p>

Imported Value 'Security ID' was matched to System Value 'Security Identifier'
Imported Value 'User ID' was matched to System Value 'User'
Imported Value 'Date' was matched to System Value 'Item Date'
< /code>

Еще одна примечание, я ожидаю, что вопрос для этого будет сделать это или нет. Я надеялся, что это могло бы быть чем -то, что я мог бы сделать во время выполнения, просто пропустив логический флаг того, соответствует ли с использованием чувствительности к корпусу или нет. < /P>

Спасибо заранее.

Подробнее здесь: https://stackoverflow.com/questions/200 ... of-strings
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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