Поиск по словарю ключей - PullRequest
0 голосов
/ 20 февраля 2020

Как я могу выполнить поиск в связке ключей в Словаре с помощью l oop или чего-то подобного и посмотреть, есть ли какой-либо ключ с теми же первыми тремя строковыми значениями, что и другая строка. следующий пример вообще не код, но в основном это желаемый результат.

Key1(3932030)
Key2(4201230)
Key3(5209872)

ArrayWithKeys(3930000,4200000,5200000)

Dictionary searchForkeys(ArrayWithKeys[i])


keyFound(3932030)

1 Ответ

1 голос
/ 20 февраля 2020

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

string[] keyArray = new string[]{ "3930000", "4200000" , "5200000"};

string substringToSearch ;

foreach(string inputKey in keyArray)
{
    substringToSearch = inputKey.Length >= 3 ? inputKey.Substring(0, 3) : inputKey;

    if(dictionaryObject.Keys.Any(x => x.StartsWith(substringToSearch)))
    {
        // below is the key matched with inputKey
        dictionaryObject.Where(x => x.Key.StartsWith(substringToSearch)).First().Value;
    }
}

EDIT
Используется только для l oop

string substringToSearch = inputKey.Length >= 3 ? inputKey.Substring(0, 3) : inputKey;

for(int i; i < dictionaryObject.Keys.Count; i++)
{       
    if( dictionaryObject.ElementAt(i).Key.StartsWith(substringToSearch) )
    {
        // key matched with inputKey
        // below is key
        string keyStr = dictionaryObject.ElementAt(i).Key;
    }
}
...