public static IEnumerable <string> SelectAllDistinctKeys(this IEnumerable <BsonDocument> documents,
                                                                 FieldSortOrder sortOrder = FieldSortOrder.Original)
        {
            if (documents == null)
            {
                return(Enumerable.Empty <string>());
            }

            var result = documents
                         .SelectMany(p => p.Keys)
                         .Distinct(StringComparer.InvariantCulture);

            if (sortOrder == FieldSortOrder.Alphabetical)
            {
                result = result.OrderBy(_ => _);
            }

            return(result);
        }
 public IReadOnlyList <string> GetDistinctKeys(FieldSortOrder sortOrder = FieldSortOrder.Original)
 {
     return(Items.SelectAllDistinctKeys(sortOrder).ToList());
 }