Syntax Flashcards
Filtering
Query Syntax ------------- var col = from o in Orders where o.CustomerID == 84 select o;
var col2 = Orders.Where(o => o.CustomerID == 84);
Return Anonymous Type
Query Syntax ------------- var col = from o in orders select new { OrderID = o.OrderID, Cost = o.Cost };
Lambda Syntax ------------- var col2 = orders.Select(o => new { OrderID = o.OrderID, Cost = o.Cost } );
Ordering
>> Ascending Query Syntax ------------- var col = from o in orders orderby o.Cost ascending select o;
var col2 = orders.OrderBy(o => o.Cost);
>> Descending Query Syntax ------------- var col3 = from o in orders orderby o.Cost descending select o;
var col4 = orders.OrderByDescending(o => o.Cost);
Query Syntax ------------- var col9 = from o in orders orderby o.CustomerID, o.Cost descending select o;
//returns same results as above var col5 = from o in orders orderby o.Cost descending orderby o.CustomerID select o;
var col6 = orders.OrderBy(o => o.CustomerID).
ThenByDescending(o => o.Cost);
Joining
Query Syntax ------------- var col = from c in customers join o in orders on c.CustomerID equals o.CustomerID select new { c.CustomerID, c.Name, o.OrderID, o.Cost };
Lambda Syntax ------------- var col2 = customers.Join(orders, c => c.CustomerID,o => o.CustomerID, (c, o) => new { c.CustomerID, c.Name, o.OrderID, o.Cost } );
Grouping
Query Syntax ------------- var OrderCounts = from o in orders group o by o.CustomerID into g select new { CustomerID = g.Key, TotalOrders = g.Count() };
Lambda Syntax ------------- var OrderCounts1 = orders.GroupBy( o => o.CustomerID). Select(g => new { CustomerID = g.Key, TotalOrders = g.Count() });
Paging
> > > select top 3
Query Syntax ------------- var col = (from o in orders where o.CustomerID == 84 select o).Take(3);
Lambda Syntax ------------- var col2 = orders.Where( o => o.CustomerID == 84 ).Take(3);
> > > skip first 2 and return the 2 after
Query Syntax ------------- var col3 = (from o in orders where o.CustomerID == 84 orderby o.Cost select o).Skip(2).Take(2);
Lambda Syntax ------------- var col3 = (from o in orders where o.CustomerID == 84 orderby o.Cost select o).Skip(2).Take(2);
Element Operators (throws exception if no elements)
Query Syntax ------------- var cust = (from c in customers where c.CustomerID == 84 select c).Single();
var cust1 = customers.Single(
c => c.CustomerID == 84);
Element Operators (returns null if no elements)
Query Syntax ------------- var cust = (from c in customers where c.CustomerID == 84 select c).SingleOrDefault();
var cust1 = customers.SingleOrDefault(
c => c.CustomerID == 84);
Element Operators (returns a new customer instance if no elements)
Query Syntax ------------- var cust = (from c in customers where c.CustomerID == 85 select c).DefaultIfEmpty( new Customer()).Single();
Lambda Syntax ------------- var cust1 = customers.Where( c => c.CustomerID == 85 ).DefaultIfEmpty(new Customer()).Single();
Element Operators (First, Last and ElementAt used in same way)
Query Syntax ------------- var cust4 = (from o in orders where o.CustomerID == 84 orderby o.Cost select o).Last();
Lambda Syntax ------------- var cust5 = orders.Where( o => o.CustomerID == 84). OrderBy(o => o.Cost).Last();
Element Operators (returns 0 if no elements)
Query Syntax ------------- var i = (from c in customers where c.CustomerID == 85 select c.CustomerID).SingleOrDefault();
Lambda Syntax ------------- var j = customers.Where( c => c.CustomerID == 85). Select(o => o.CustomerID).SingleOrDefault();
ToArray
string[] names = (from c in customers
select c.Name).ToArray();
ToDictionary
Dictionary col = customers.ToDictionary(c => c.CustomerID);
Dictionary customerOrdersWithMaxCost = (from oc in
(from o in orders
join c in customers on o.CustomerID equals c.CustomerID
select new { c.Name, o.Cost })
group oc by oc.Name into g
select g).ToDictionary(g => g.Key, g => g.Max(oc => oc.Cost));
ToList
List ordersOver10 = (from o in orders
where o.Cost > 10
orderby o.Cost).ToList();