Esempio n. 1
0
 public T SelectOne <K>(string property, K value)
 {
     if (indexes.GetIndex(property) is IListIndex <T, K> index)
     {
         return(index.SelectOne(value));
     }
     return(SelectOne(property, CompareType.Equal, value));
 }
Esempio n. 2
0
        public static IEnumerable <T> Select <T>(IEnumerable <T> items, QueryParameter <T> param, ListIndexes <T> indexes = null)
        {
            var index = indexes?.GetIndex(param.Name);

            if (index != null)
            {
                return(index.Scan(param));
            }
            return(Search <T>(items, param));
        }
Esempio n. 3
0
        public static IEnumerable <T> Select <T>(IEnumerable <T> items, QueryParameter <T> param, ListIndexes <T> indexes = null)
        {
            if (param.AlwaysTrue)
            {
                return(items);
            }

            if (param.Comparer.Type == CompareTypes.Distinct)
            {
                return(Distinct(items, param.Invoker));
            }

            var index = indexes?.GetIndex(param.Name);

            if (index != null)
            {
                return(index.Scan(param));
            }
            return(Search <T>(items, param));
        }