> 백엔드 개발 > C++ > LINQ를 사용하여 목록에서 요소를 효율적으로 제거하려면 어떻게 해야 합니까?

LINQ를 사용하여 목록에서 요소를 효율적으로 제거하려면 어떻게 해야 합니까?

Mary-Kate Olsen
풀어 주다: 2025-01-24 03:41:13
원래의
415명이 탐색했습니다.

How Can I Efficiently Remove Elements from a List Using LINQ?

LINQ를 사용하여 List 요소를 효율적으로 제거

LINQ는 컬렉션의 특정 요소를 필터링하고 선택할 수 있는 강력한 데이터 쿼리 기술입니다. 그러나 List와 같은 변경 가능한 컬렉션을 처리할 때는 쿼리 결과에 따른 후속 수정을 주의해서 처리해야 합니다.

LINQ 쿼리 및 제거

다음 LINQ 쿼리를 고려해 보세요.

<code class="language-csharp">var authors = from x in authorsList
              where x.firstname == "Bob"
              select x;</code>
로그인 후 복사

이 쿼리는 Author라는 이름의 Author 개체 시퀀스를 반환합니다. 그러나 AuthorList에서 이러한 작성자를 제거하려는 경우 제거를 위해 작성자를 사용하면 원본 컬렉션이 직접 업데이트되지 않습니다.

쿼리 결과 제거 솔루션

authorList에서 쿼리 결과를 삭제하는 두 가지 주요 전략은 다음과 같습니다.

  1. 쿼리에서 요소 제외: 나중에 요소를 제거할 필요가 없도록 쿼리를 수정하여 원하지 않는 요소를 제외할 수 있습니다.
<code class="language-csharp">authorsList = authorsList.Where(x => x.FirstName != "Bob").ToList();</code>
로그인 후 복사

이렇게 하면 Bob이 포함되지 않은 새로운 필터링된 작성자 목록이 효과적으로 생성됩니다.

  1. RemoveAll 사용: 이미 쿼리를 실행했고 작성자 목록에서 결과를 제거해야 하는 경우 RemoveAll 메서드를 사용할 수 있습니다.
<code class="language-csharp">authorsList.RemoveAll(x => x.FirstName == "Bob");</code>
로그인 후 복사

이 메소드는 AuthorList를 반복하여 조건자와 일치하는 모든 요소를 ​​제거합니다.

여러 요소를 필터링하는 대체 방법

별도의 세트(예: HashSet)를 기반으로 여러 특정 요소를 제거해야 하는 경우:

<code class="language-csharp">var setToRemove = new HashSet<Author>(authors);
authorsList.RemoveAll(x => setToRemove.Contains(x));</code>
로그인 후 복사

이 방법은 작성자 목록에서 setToRemove의 모든 작성자를 효과적으로 제거합니다.

위 내용은 LINQ를 사용하여 목록에서 요소를 효율적으로 제거하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿