Есть Dictionary такого типа:
Dictionary<string, string> vocabulary = new Dictionary<string, string>();
В него необходимо добавить 2 заполненных массива типа string tx1 и tx2, пробовал добавить через цикл, не получается.
for (int i = 0; i < tx1.Length; i++)
{
for (int j = 0; j < tx2.Length; j++)
{
vocabulary.Add(tx1[i], tx2[j]);
}
}
Получаю исключение: "Элемент с тем же ключом уже был добавлен." Как правильно заполнить? Заранее спасибо.
если массивы соответствуют ключу => значению
for (int i = 0; i < tx1.Length; i++)
{
vocabulary.Add(tx1[i], tx2[i]);
}
Даешь магию кортежей и LINQ - однострочник!
var keys = new[] {"one", "two", "three"};
var values = new[] {"oneV", "twoV", "threeV"};
var dictionary = keys.Select((k, i)=>(k, i)).ToDictionary(x=>x.k, x=>values[x.i]);
Второй вариант, чуть более длинный
var dictionary = Enumerable.Range(0, Math.Min(keys.Length, values.Length))
.ToDictionary(i => keys[i], i=>values[i]).Dump();
Словарь содержит пары "ключ-значение". Если значение может быть не уникальным, т.е. повторяться, то ключ должен быть уникальным, т.к. доступ к значениям словаря производится по ключу. Перед добавлением пары "ключ-значение" в словарь, можно проверить наличие/отсутствие ключа и на основе результата определять дальнейшее поведение:
for (int i = 0; i < tx1.Length; i++) {
if(vocabulary.ContainsKey(tx1[i])) {
Console.WriteLine($"key {tx1[i]} already exists");
continue;
}
vocabulary.Add(tx1[i], tx2[i]);
}
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Нужно что бы спрайт плавное изменял свой цвет в красный оттенок ,а потом обратно в свой дефолтный (хочу сделать мигание)Возможно ли такое...
Всем привет! Сегодня решил попробовать написать бота для Telegram на c#Использовал dotnet
Нужно получить Memory<byte> из string без создания промежуточных массивов
В С# + MS SQL через ADONET есть так скажем 2 таблицы: