Skip to content

Commit a22f3fa

Browse files
committed
Avoid doing multiple dictionary lookups (get key hash, find bucket, iterate bucket)
Forward port of 750b4ec
1 parent c67dc67 commit a22f3fa

File tree

3 files changed

+10
-12
lines changed

3 files changed

+10
-12
lines changed

src/Elasticsearch.Net/Responses/Sniff/SniffResponse.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,8 @@ internal bool HttpEnabled
7878
{
7979
get
8080
{
81-
if (settings != null && settings.ContainsKey("http.enabled"))
82-
return Convert.ToBoolean(settings["http.enabled"]);
81+
if (settings != null && settings.TryGetValue("http.enabled", out var httpEnabled))
82+
return Convert.ToBoolean(httpEnabled);
8383

8484
return http != null;
8585
}

src/Nest/CommonAbstractions/ConnectionSettings/ConnectionSettingsBase.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -175,9 +175,9 @@ private void MapIdPropertyFor<TDocument>(Expression<Func<TDocument, object>> obj
175175
var memberInfo = new MemberInfoResolver(objectPath);
176176
var fieldName = memberInfo.Members.Single().Name;
177177

178-
if (_idProperties.ContainsKey(typeof(TDocument)))
178+
if (_idProperties.TryGetValue(typeof(TDocument), out var idPropertyFieldName))
179179
{
180-
if (_idProperties[typeof(TDocument)].Equals(fieldName)) return;
180+
if (idPropertyFieldName.Equals(fieldName)) return;
181181

182182
throw new ArgumentException(
183183
$"Cannot map '{fieldName}' as the id property for type '{typeof(TDocument).Name}': it already has '{_idProperties[typeof(TDocument)]}' mapped.");
@@ -193,9 +193,9 @@ private void MapRoutePropertyFor<TDocument>(Expression<Func<TDocument, object>>
193193
var memberInfo = new MemberInfoResolver(objectPath);
194194
var fieldName = memberInfo.Members.Single().Name;
195195

196-
if (_routeProperties.ContainsKey(typeof(TDocument)))
196+
if (_routeProperties.TryGetValue(typeof(TDocument), out var routePropertyFieldName))
197197
{
198-
if (_routeProperties[typeof(TDocument)].Equals(fieldName)) return;
198+
if (routePropertyFieldName.Equals(fieldName)) return;
199199

200200
throw new ArgumentException(
201201
$"Cannot map '{fieldName}' as the route property for type '{typeof(TDocument).Name}': it already has '{_routeProperties[typeof(TDocument)]}' mapped.");
@@ -227,10 +227,10 @@ private void ApplyPropertyMappings<TDocument>(IList<IClrPropertyMapping<TDocumen
227227
memberInfo = typeof(TDocument).GetMember(memberInfo.Name, bindingFlags).First();
228228
}
229229

230-
if (_propertyMappings.ContainsKey(memberInfo))
230+
if (_propertyMappings.TryGetValue(memberInfo, out var propertyMapping))
231231
{
232232
var newName = mapping.NewName;
233-
var mappedAs = _propertyMappings[memberInfo].Name;
233+
var mappedAs = propertyMapping.Name;
234234
var typeName = typeof(TDocument).Name;
235235
if (mappedAs.IsNullOrEmpty() && newName.IsNullOrEmpty())
236236
throw new ArgumentException($"Property mapping '{e}' on type is already ignored");

src/Nest/IndexModules/IndexSettings/Settings/IndexSettingsFormatter.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -285,10 +285,9 @@ private static void Set<T>(IIndexSettings s, IDictionary<string, object> setting
285285
IJsonFormatterResolver formatterResolver
286286
)
287287
{
288-
if (!settings.ContainsKey(key))
288+
if (!settings.TryGetValue(key, out var setting))
289289
return;
290290

291-
var setting = settings[key];
292291
var value = ConvertToValue<T>(setting, formatterResolver);
293292
assign(value);
294293
s.Add(key, value);
@@ -333,9 +332,8 @@ private static void SetArray<TArray, TItem>(IIndexSettings s, IDictionary<string
333332
)
334333
where TArray : IEnumerable<TItem>
335334
{
336-
if (!settings.ContainsKey(key)) return;
335+
if (!settings.TryGetValue(key, out var v)) return;
337336

338-
var v = settings[key];
339337
if (!(v is string) && v is IEnumerable)
340338
{
341339
var value = ConvertToValue<TArray>(v, formatterResolver);

0 commit comments

Comments
 (0)