일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- delegate
- ADO.NET
- IT관련
- 메소드
- asp.net mvc
- 디자인패턴
- SQL
- 클래스
- 구글
- csv
- 제네릭
- IT 관련
- mvc
- JavaScript
- MSSQL
- jQuery
- cookie
- LINQ
- c#
- It
- XML
- Excel
- ASP.NET
- angularJS
- 동적dom
- di
- Generic
- iframe
- Today
- 762
- Total
- 1,436,520
심재운 블로그
LINQ 의 쿼리문법과 림다문법 비교문서 본문
Filtering |
|
var col = from o in Orders where o.CustomerID == 84 select o; | var col2 = Orders.Where(o => o.CustomerID == 84); |
Return Anonymous Type | |
var col = from o in orders select new { OrderID = o.OrderID, Cost = o.Cost }; | var col2 = orders.Select(o => new { OrderID = o.OrderID, Cost = o.Cost } ); |
Ordering | |
var col = from o in orders orderby o.Cost ascending select o; | var col2 = orders.OrderBy(o => o.Cost); |
var col3 = from o in orders orderby o.Cost descending select o; | var col4 = orders.OrderByDescending(o => o.Cost); |
var col5 = from o in orders orderby o.Cost descending orderby o.CustomerID select o; NOTE the ordering of the orderby’s | var col6 = orders.OrderBy(o => o.CustomerID).ThenByDescending(o => o.Cost); |
//Random Ordering Random R = new Random(); var col6 = from o in orders orderby R.Next() select o; | //Random Ordering Random R = new Random(); var col8 = orders.OrderBy(o => R.Next()); |
Joining | |
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 }; | var col2 = customers.Join(orders, c => c.CustomerID, o => o.CustomerID, (c, o) => new { c.CustomerID, c.Name, o.OrderID, o.Cost } ); |
Grouping | |
var OrderCounts = from o in orders group o by o.CustomerID into g select new { CustomerID = g.Key, TotalOrders = g.Count() }; | var OrderCounts1 = orders.GroupBy( o => o.CustomerID). Select(g => new { CustomerID = g.Key, TotalOrders = g.Count() }); |
NOTE: |
Paging (using Skip & Take) | |
//select top 3 var col = (from o in orders where o.CustomerID == 84 select o).Take(3); | var col2 = orders.Where( o => o.CustomerID == 84 ).Take(3); |
//skip first 2 and return the 2 after var col3 = (from o in orders where o.CustomerID == 84 orderby o.Cost select o).Skip(2).Take(2); | var col3 = (from o in orders where o.CustomerID == 84 orderby o.Cost select o).Skip(2).Take(2); |
Element Operators (Single, Last, First, ElementAt, Defaults) | |
//throws exception if no elements var cust = (from c in customers where c.CustomerID == 84 select c).Single(); | var cust1 = customers.Single( c => c.CustomerID == 84); |
//returns null if no elements var cust = (from c in customers where c.CustomerID == 84 selectc).SingleOrDefault(); | var cust1 = customers.SingleOrDefault( c => c.CustomerID == 84); |
//returns a new customer instance if no elements var cust = (from c in customers where c.CustomerID == 85 select c).DefaultIfEmpty( new Customer()).Single(); | var cust1 = customers.Where( c => c.CustomerID == 85 ).DefaultIfEmpty(newCustomer()).Single(); |
//First, Last and ElementAt used in same way var cust4 = (from o in orders where o.CustomerID == 84 orderby o.Cost select o).Last(); | var cust5 = orders.Where( o => o.CustomerID == 84). OrderBy(o => o.Cost).Last(); |
NOTE: |
Conversions |
ToArray |
select c.Name).ToArray(); |
ToDictionary |
Dictionary<string, double> customerOrdersWithMaxCost = (from oc in (from o inorders 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 |
where o.Cost > 10 orderby o.Cost).ToList(); |
ToLookup |
|
'닷넷관련 > LINQ' 카테고리의 다른 글
LINQ Deep Dive: Part I (0) | 2009.04.10 |
---|---|
LINQ 을 이용하여 ASP.NET SiteMap 쿼리하기 (4) | 2009.03.11 |
LINQ 의 쿼리문법과 림다문법 비교문서 (0) | 2009.03.02 |
.NET 2.0 에서 LINQ TO OBJECT 구현하기 (0) | 2009.02.27 |
ASP.NET Master Pages 와 LINQ를 이용하여 textbox 에 focus 설정하기 (0) | 2009.02.26 |
인터페이스를 이용하여 LINQ 구문 구현해 보기 (0) | 2009.02.13 |