Estoy usando el ejemplo del tutorial https://www.dotnetperls.com/dictionary Pero tengo problemas con la falta de referencia a TryAdd . ¿Debo agregar algunas referencias adicionales para usar este método? No encontré nada en la documentación https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.dictionary-2.tryadd?view=net-5.0
var items = new Dictionary<string, int>(); // Part 1: add the string with value 1. bool result = items.TryAdd("test", 1);Código de gravedad Descripción Error de estado de supresión de línea de archivo de proyecto CS1061 'Dictionary<string, int>' no contiene una definición para 'TryAdd' y ningún método de extensión accesible 'TryAdd' aceptando un primer argumento de tipo 'Dictionary<string, int>' podría ser encontrado (¿falta una directiva de uso o una referencia de ensamblado?) CsharpTest C:\ruta\a\archivo\Program.cs 672 Activo
ACTUALIZACIÓN: este método es para .NET 5 ang mayor (estoy usando un marco anterior)
Los comentarios son de semi-derecha. Este método se introdujo en .NET Core 2.0 y .NET Standard 2.1, por lo que necesita que su marco de trabajo de destino sea al menos eso. En particular, no existe en .NET Framework (cualquier versión) y sí existe en la última versión de .NET 5.
Si lo necesita en un tiempo de ejecución anterior, puede escribir un método de extensión (tomado de dotnet/runtime, System.Collections.Generic.CollectionExtensions ).
public static bool TryAdd<TKey, TValue>(this IDictionary<TKey, TValue> dictionary, TKey key, TValue value) { if (dictionary == null) { throw new ArgumentNullException(nameof(dictionary)); } if (!dictionary.ContainsKey(key)) { dictionary.Add(key, value); return true; } return false; } Tiene peores características de rendimiento que el método de instancia de Dictionary<,> , ya que primero realiza una búsqueda por separado, pero es poco probable que sea relevante.