예제 #1
0
        static IEnumerable <QueryResultItem <T> > GenerateCore <T>(QueryContext context, T seed, Func <T, IQuery <T> > generator)
        {
            yield return(QueryResultItem.Create(context, seed));

            var current = seed;

            while (true)
            {
                foreach (var next in generator(current).GetResult(context))
                {
                    yield return(next);

                    current = next.Value;
                    context = next.Context;
                }
            }
        }
예제 #2
0
 public static IQuery <T> ToQuery <T>(this IEnumerable <T> items) =>
 Create(context => QueryResult.Create(from item in items select QueryResultItem.Create(context, item)));
예제 #3
0
 public static QueryResult <T> Singleton <T>(QueryContext context, T value) =>
 Singleton(QueryResultItem.Create(context, value));
예제 #4
0
 public static QueryResult <T> Singleton <T>(QueryResultItem <T> item) =>
 new QueryResult <T>(new[] { item });
예제 #5
0
파일: QueryLinq.cs 프로젝트: gusty/WebLinq
 static IEnumerable <QueryResultItem <TResult> > SelectManyIterator <T1, T2, TResult>(QueryContext context, QueryResult <T1> xs, Func <T1, IQuery <T2> > f, Func <T1, T2, TResult> g) =>
 from x in xs
 from result in f(x.Value).GetResult(x.Context)
 select QueryResultItem.Create(result.Context, g(x, result.Value));