
public
TValue AddOrUpdate(
TKey key,
Func<TKey, TValue> addValueFactory,
Func<TKey, TValue, TValue> updateValueFactory)
Описание:
если
ключ существует, то
обновляет пару (ключ - значение) c помощью функции
updateValueFactory
если
ключ еще не существует, то д
обавляет пару (ключ - значение)
C#
Пример
using System;
using System.Collections.Concurrent; // подключаем ConcurrentDictionary<TKey, TValue>
using System.Collections.Generic; // подключаем KeyValuePair<TKey, TValue>
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// создаем Dictionary
ConcurrentDictionary<string, string> dict = new ConcurrentDictionary<string, string>();
// установить значение по ключу
dict["bmp"] = "Paint.exe";
dict["png"] = "Paint.exe";
// добавляем элемент
dict.AddOrUpdate("jpg" /*ключ*/, "PhotoShop.exe" /*значение*/, (key, oldValue) => oldValue);
// меняем элемент
string value = "CorelDraw.exe";
dict.AddOrUpdate("png" /*ключ*/, "Paint.exe"/*значение*/, (key, oldValue) => "CarelDraw.exe");
//dict.Add("rtf" /*ключ*/, "wordpad.exe" /*значение*/);
// перебираем все элементы с помощью foreach и выводим на экран
foreach (KeyValuePair<string, string> item in dict)
Console.WriteLine("Ключ=" + item.Key + " , значение=" + item.Value);
}
}
}