Exemple #1
0
        public static TSource FirstOrDefault <TSource>(this ReadOnlyMemory <TSource> source)
        {
            var aggregate = new FirstOrDefault <TSource>();

            MemoryNode.ProcessMemory(source, ref aggregate);
            return(aggregate.GetResult());
        }
Exemple #2
0
        public static TSource FirstOrDefault <TSource>(this List <TSource> source)
        {
            var aggregate = new FirstOrDefault <TSource>();

            ListSegmentNode.ProcessList(source, ref aggregate);
            return(aggregate.GetResult());
        }
Exemple #3
0
        public static TSource FirstOrDefault <TSource>(this TSource[] source)
        {
            var aggregate = new FirstOrDefault <TSource>();

            ArrayNode.ProcessArray(source, ref aggregate);
            return(aggregate.GetResult());
        }
        public static object GetColumnById(this object dbContext, string tableName, string columnName, object id)
        {
            var table    = (IQueryable)dbContext.GetType().GetProperty(tableName).GetValue(dbContext);
            var row      = Expression.Parameter(table.ElementType, "row");
            var filter   = Expression.Lambda(Expression.Equal(Expression.Property(row, "Id"), Expression.Constant(id)), row);
            var column   = Expression.Property(row, columnName);
            var selector = Expression.Lambda(column, row);
            var query    = Call(Where.MakeGenericMethod(row.Type), table, filter);

            query = Call(Select.MakeGenericMethod(row.Type, column.Type), query, selector);
            var value = Call(FirstOrDefault.MakeGenericMethod(column.Type), query);

            return(value);
        }
 public void FirstOrDefaultTestNegative()
 {
     Assert.AreEqual(FirstOrDefault.FirstOrDefaultForLoop(People.PeopleList, "George")?.FirstName, FirstOrDefault.FirstOrDefaultLinq(People.PeopleList, "George")?.FirstName);
 }
 public void FirstOrDefaultTestPositive()
 {
     Assert.AreEqual(FirstOrDefault.FirstOrDefaultForLoop(People.PeopleList, "Dan")?.FirstName, FirstOrDefault.FirstOrDefaultLinq(People.PeopleList, "Dan")?.FirstName);
 }
Exemple #7
0
        public void ShowExample_Click(object sender, EventArgs e)
        {
            Form form = null;

            switch (((Button)sender).Name)
            {
            // LINQ Dynamic | Restriction Operators
            case "uiROWhere":
                form = new Where();
                break;

            // LINQ Dynamic | Projection Operators
            case "uiPOSelect":
                form = new Select();
                break;

            case "uiPOSelectMany":
                form = new SelectMany();
                break;

            // LINQ Dynamic | Aggregate Operators
            case "uiAOMin":
                form = new Min();
                break;

            case "uiAOMax":
                form = new Max();
                break;

            case "uiAOSum":
                form = new Sum();
                break;

            case "uiAOCount":
                form = new Count();
                break;

            case "uiAOAverage":
                form = new Average();
                break;

            case "uiAOAggregate":
                form = new Aggregate();
                break;

            // LINQ Dynamic | Query Execution
            case "uiQEDeferredExecution":
                form = new DeferredExecution();
                break;

            case "uiQEQueryReuse":
                form = new QueryReuse();
                break;

            case "uiQEImmediateExecution":
                form = new ImmediateExecution();
                break;


            // LINQ Dynamic |  Join Operators
            case "uiJOCrossJoin":
                form = new CrossJoin();
                break;

            case "uiJOGroupJoin":
                form = new GroupJoin();
                break;

            case "uiJOCrossWithGroupJoin":
                form = new CrossJoinwithGroupJoin();
                break;

            case "uiJOLeftOuterJoin":
                form = new LeftOuterJoin();
                break;

            // LINQ Dynamic |    Set Operators
            case "uiSODistinct":
                form = new Distinct();
                break;

            case "uiSOExcept":
                form = new Except();
                break;

            case "uiSOIntersect":
                form = new Intersect();
                break;

            case "uiSOUnion":
                form = new Union();
                break;

            // LINQ Dynamic |    Element Operators
            case "uiEOElementAt":
                form = new ElementAt();
                break;

            case "uiEOFirst":
                form = new First();
                break;

            case "uiEOFirstDefault":
                form = new FirstOrDefault();
                break;

            // LINQ Dynamic |    Custom Sequence Operators
            case "uiCSOCombine":
                form = new Combine();
                break;

            // LINQ Dynamic |    Quantifiers
            case "uiQuantifiersAll":
                form = new All();
                break;

            case "uiQuantifiersAny":
                form = new Any();
                break;

            // LINQ Dynamic |    Grouping Operators
            case "uiGOGroupBy":
                form = new GroupBy();
                break;

            // LINQ Dynamic |    Miscellaneous Operators
            case "uiMOConcat":
                form = new Concat();
                break;

            case "uiMOEqualAll":
                form = new EqualAll();
                break;


            // LINQ Dynamic |    Generation Operators
            case "uiGORepeat":
                form = new Repeat();
                break;

            case "uiGORange":
                form = new Range();
                break;


            // LINQ Dynamic |    Ordering Operators
            case "uiOOOrderBy":
                form = new OrderBy();
                break;

            case "uiOOThenBy":
                form = new ThenBy();
                break;

            case "uiOOThenByDescending":
                form = new ThenByDescending();
                break;

            case "uiOOOrderByDescending":
                form = new OrderByDescending();
                break;

            case "uiOOReverse":
                form = new Reverse();
                break;

            // LINQ Dynamic |    Conversion Operators
            case "uiCOOfType":
                form = new OfType();
                break;

            case "uiCOToArray":
                form = new ToArray();
                break;

            case "uiCOToDictionary":
                form = new ToDictionary();
                break;

            case "uiCOToList":
                form = new ToList();
                break;


            // LINQ Dynamic |    Partitioning Operators
            case "uiPOTake":
                form = new Take();
                break;

            case "uiPOTakeWhile":
                form = new TakeWhile();
                break;

            case "uiPOSkip":
                form = new Skip();
                break;

            case "uiPOSkipWhile":
                form = new SkipWhile();
                break;
            }

            form.StartPosition = FormStartPosition.CenterParent;
            form.ShowDialog();
        }