LINQ 쿼리: 유창한 구문과 쿼리 표현식 비교
LINQ는 Fluent 구문과 쿼리 식 구문이라는 두 가지 쿼리 방법을 제공합니다. 둘 다 쿼리 작업을 구현할 수 있지만 적용 가능한 시나리오에서는 다릅니다.
유창한 구문
Fluent 구문은 C#과 유사하며 메서드 체인을 사용하여 쿼리를 작성합니다. 간단한 쿼리의 경우 일반적으로 더 간결하며 모든 쿼리 연산자에 액세스할 수 있습니다.
쿼리 표현식 구문
쿼리 표현식 구문은 SQL과 유사하여 읽고 사용하기가 더 쉽습니다. "let" 키워드, 다중 생성기 또는 조인 쿼리 사용과 같이 다중 범위 변수가 필요한 시나리오에서 잘 작동합니다.
예: 여러 범위 변수
다음은 쿼리 표현식 구문을 사용한 예입니다.
<code class="language-csharp">from fullName in fullNames from name in fullName.Split() orderby fullName, name select name + " came from " + fullName;</code>
유창한 구문을 사용하려면 다음과 같이 작성해야 합니다.
<code class="language-csharp">fullNames .SelectMany(fName => fName.Split().Select(name => new { name, fName })) .OrderBy(x => x.fName) .ThenBy(x => x.name) .Select(x => x.name + " came from " + x.fName);</code>
분명히 여러 범위 변수가 관련된 경우 쿼리 식 구문이 더 깔끔하고 이해하기 쉽습니다.
섞어보세요
두 구문의 장점을 결합하기 위해 LINQ 쿼리에서 혼합할 수 있습니다. 예:
<code class="language-csharp">var query = from c in db.Customers let totalSpend = c.Purchases.Sum(p => p.Price) // 此处使用方法语法 where totalSpend > 1000 from p in c.Purchases select new { p.Description, totalSpend, c.Address.State };</code>
이 예에서는 전체 쿼리에서 쿼리 식 구문의 가독성을 유지하면서 "Sum" 연산에 메서드 구문을 사용합니다. 어떤 구문을 선택할지는 특정 시나리오와 개인 선호도에 따라 달라집니다. 두 구문을 유연하게 사용하면 코드의 가독성과 효율성이 향상될 수 있습니다.
위 내용은 LINQ의 유창한 구문과 쿼리 식: 언제 어느 것을 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!