>백엔드 개발 >C++ >LINQ의 유창한 구문과 쿼리 식: 언제 어느 것을 사용해야 합니까?

LINQ의 유창한 구문과 쿼리 식: 언제 어느 것을 사용해야 합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-27 08:21:08447검색

Fluent Syntax vs. Query Expression in LINQ: When Should I Use Which?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.