# CA1853: Unnecessary call to 'Dictionary.ContainsKey(key)'
dotnet_diagnostic.CA1853.severity = warning
+# CA1854: Prefer the 'IDictionary.TryGetValue(TKey, out TValue)' method
+dotnet_diagnostic.CA1854.severity = warning
+
# CA2000: Dispose objects before losing scope
dotnet_diagnostic.CA2000.severity = none
# CA1853: Unnecessary call to 'Dictionary.ContainsKey(key)'
dotnet_diagnostic.CA1853.severity = none
+# CA1854: Prefer the 'IDictionary.TryGetValue(TKey, out TValue)' method
+dotnet_diagnostic.CA1854.severity = none
+
# CA2000: Dispose objects before losing scope
dotnet_diagnostic.CA2000.severity = none
Guid guid = GetTypeGuid(metadataReader, definition);
string guidString = GetTypeGuid(metadataReader, definition).ToString("B");
- if (clsidMap.ContainsKey(guidString))
+ if (clsidMap.TryGetValue(guidString, out ClsidEntry value))
{
- throw new ConflictingGuidException(clsidMap[guidString].Type, GetTypeName(metadataReader, definition), guid);
+ throw new ConflictingGuidException(value.Type, GetTypeName(metadataReader, definition), guid);
}
string progId = GetProgId(metadataReader, definition);
lock (s_eventLockObject)
{
- if (s_handlers != null && s_handlers.ContainsKey(key))
+ if (s_handlers != null && s_handlers.TryGetValue(key, out List<SystemEventInvokeInfo>? invokeItems))
{
- List<SystemEventInvokeInfo> invokeItems = s_handlers[key];
-
// clone the list so we don't have this type locked and cause
// a deadlock if someone tries to modify handlers during an invoke.
if (invokeItems != null)
lock (s_eventLockObject)
{
- if (s_handlers != null && s_handlers.ContainsKey(key))
+ if (s_handlers != null && s_handlers.TryGetValue(key, out List<SystemEventInvokeInfo>? invokeItems))
{
- List<SystemEventInvokeInfo> invokeItems = s_handlers[key];
-
invokeItems.Remove(new SystemEventInvokeInfo(value));
}
}
return null;
}
- if (s_referencedic.ContainsKey(assemblyname))
+ if (s_referencedic.TryGetValue(assemblyname, out string reference))
{
- string reference = s_referencedic[assemblyname];
-
// For System.ServiceModel.Primitives, we need to load its runtime assembly rather than reference assembly
if (assemblyname.Equals("System.ServiceModel.Primitives"))
{
metadata.Add(CompositionConstants.ExportTypeIdentityMetadataName, typeIdentity);
var partMetadata = _partCreationInfo.GetMetadata();
- if (partMetadata != null && partMetadata.ContainsKey(CompositionConstants.PartCreationPolicyMetadataName))
+ if (partMetadata != null && partMetadata.TryGetValue(CompositionConstants.PartCreationPolicyMetadataName, out object? value))
{
- metadata.Add(CompositionConstants.PartCreationPolicyMetadataName, partMetadata[CompositionConstants.PartCreationPolicyMetadataName]);
+ metadata.Add(CompositionConstants.PartCreationPolicyMetadataName, value);
}
if ((_typeIdentityType != null) && (_member.MemberType != MemberTypes.Method) && _typeIdentityType.ContainsGenericParameters)
{
Debug.Assert(elem != null);
- if ((s_perTypeValidators != null) && s_perTypeValidators.ContainsKey(elem.GetType()))
- elem._elementProperty = new ConfigurationElementProperty(s_perTypeValidators[elem.GetType()]);
+ if ((s_perTypeValidators != null) && s_perTypeValidators.TryGetValue(elem.GetType(), out ConfigurationValidatorBase value))
+ elem._elementProperty = new ConfigurationElementProperty(value);
}
protected void SetPropertyValue(ConfigurationProperty prop, object value, bool ignoreLocks)
if (FromInference && relation.Nested)
{
- if (_tableDictionary!.ContainsKey(relation.ParentTable))
+ if (_tableDictionary!.TryGetValue(relation.ParentTable, out List<DataTable>? value))
{
- _tableDictionary[relation.ParentTable].Add(relation.ChildTable);
+ value.Add(relation.ChildTable);
}
}
_tableChild.DataSet!.Relations.Add(relation);
if (FromInference && relation.Nested)
{
- if (_tableDictionary!.ContainsKey(relation.ParentTable))
+ if (_tableDictionary!.TryGetValue(relation.ParentTable, out List<DataTable>? value))
{
- _tableDictionary[relation.ParentTable].Add(relation.ChildTable);
+ value.Add(relation.ChildTable);
}
}
}
{
if (!ConvertValueToIntegratedSecurity())
{
- if (_parsetable.ContainsKey(KEY.Password))
+ if (_parsetable.TryGetValue(KEY.Password, out string? value))
{
- return string.IsNullOrEmpty(_parsetable[KEY.Password]);
+ return string.IsNullOrEmpty(value);
}
- else
- if (_parsetable.ContainsKey(SYNONYM.Pwd))
+ else if (_parsetable.TryGetValue(SYNONYM.Pwd, out string? val))
{
- return string.IsNullOrEmpty(_parsetable[SYNONYM.Pwd]); // MDAC 83097
+ return string.IsNullOrEmpty(val); // MDAC 83097
}
else
{
protected void BuildPropertySet(Type p, StringCollection propertySet)
{
- if (TypeToLdapPropListMap[this.MappingTableIndex].ContainsKey(p))
+ if (TypeToLdapPropListMap[this.MappingTableIndex].TryGetValue(p, out StringCollection value))
{
- Debug.Assert(TypeToLdapPropListMap[this.MappingTableIndex].ContainsKey(p));
- string[] props = new string[TypeToLdapPropListMap[this.MappingTableIndex][p].Count];
- TypeToLdapPropListMap[this.MappingTableIndex][p].CopyTo(props, 0);
+ string[] props = new string[value.Count];
+ value.CopyTo(props, 0);
propertySet.AddRange(props);
}
else
PackUriHelper.ValidatedPartUri validatedPartUri = (PackUriHelper.ValidatedPartUri)PackUriHelper.ValidatePartUri(partUri);
- if (_partList.ContainsKey(validatedPartUri))
+ if (_partList.TryGetValue(validatedPartUri, out PackagePart? value))
{
//This will get the actual casing of the part that
//is stored in the partList which is equivalent to the
//partUri provided by the user
- validatedPartUri = (PackUriHelper.ValidatedPartUri)_partList[validatedPartUri].Uri;
+ validatedPartUri = (PackUriHelper.ValidatedPartUri)value.Uri;
_partList[validatedPartUri].IsDeleted = true;
_partList[validatedPartUri].Close();
PackUriHelper.ValidatedPartUri validatePartUri = PackUriHelper.ValidatePartUri(partUri);
- if (_partList.ContainsKey(validatePartUri))
+ if (_partList.TryGetValue(validatePartUri, out PackagePart? value))
{
- return _partList[validatePartUri];
+ return value;
}
else
{
// Need to create an override entry?
if (extension.Length == 0
- || (_defaultDictionary.ContainsKey(extension)
- && !(foundMatchingDefault =
- _defaultDictionary[extension].AreTypeAndSubTypeEqual(contentType))))
+ || (_defaultDictionary.TryGetValue(extension, out ContentType? value)
+ && !(foundMatchingDefault = value.AreTypeAndSubTypeEqual(contentType))))
{
AddOverrideElement(partUri, contentType);
}
//partUri provided. Override takes precedence over the default entries
if (_overrideDictionary != null)
{
- if (_overrideDictionary.ContainsKey(partUri))
- return _overrideDictionary[partUri];
+ if (_overrideDictionary.TryGetValue(partUri, out ContentType? val))
+ return val;
}
//Step 2: Check if there is a default entry corresponding to the
//extension of the partUri provided.
string extension = partUri.PartUriExtension;
- if (_defaultDictionary.ContainsKey(extension))
- return _defaultDictionary[extension];
+ if (_defaultDictionary.TryGetValue(extension, out ContentType? value))
+ return value;
//Step 3: If we did not find an entry in the override and the default
//dictionaries, this is an error condition
if (scope != XmlNamespaceScope.Local)
{
- if (dict.ContainsKey(string.Empty) && dict[string.Empty] == string.Empty)
+ if (dict.TryGetValue(string.Empty, out string? value) && value == string.Empty)
{
dict.Remove(string.Empty);
}
System.Diagnostics.Debug.Assert(dwSymbolOffset == 0 || _symbols[iWord] == sRule);
- rule = dwSymbolOffset > 0 && _nameOffsetRules.ContainsKey(dwSymbolOffset) ? _nameOffsetRules[dwSymbolOffset] : null;
+ rule = dwSymbolOffset > 0 && _nameOffsetRules.TryGetValue(dwSymbolOffset, out Rule value) ? value : null;
}
}