bool IPatchArray.Contains(IPatchArrayDocument item) => Contains(item.Name);
public bool Contains(IPatchArrayDocument <T> item) => Contains(item.Name);
private static TSource FirstOrDefault <TSource>(IEnumerable <TSource> source, IPatchArrayDocument patchPatchDocument) { var type = typeof(TSource); var typeQualifiedName = type.AssemblyQualifiedName; foreach (var key in patchPatchDocument.PatchKeys) { var propertyInfo = PropertyInfos[typeQualifiedName, key.Name] ?? (PropertyInfos[typeQualifiedName, key.Name] = type.GetTypeInfo().GetProperty(key.Name)); source = source.Where(x => propertyInfo.GetValue(x).Equals(key.Value)); } return(source.FirstOrDefault()); }