public static async Task <KeyValuePair <TKey, TValue>?> Find <TKey, TValue> ( [NotNull] this IQueryManager <TKey, TValue> queryManager, [NotNull] Func <TKey, bool> isKey, [CanBeNull] CancellationToken cancellationToken = default ) { var query = new FindQuery <TKey, TValue>(isKey, cancellationToken); if (!await queryManager.ExecuteQuery(query).ConfigureAwait(false)) { return(null); } return(new KeyValuePair <TKey, TValue>(query.Key, query.Value)); }