> 백엔드 개발 > C++ > LINQ 쿼리에서 문자열 배열과 함께 Contains()를 사용하는 방법은 무엇입니까?

LINQ 쿼리에서 문자열 배열과 함께 Contains()를 사용하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-12-27 07:19:09
원래의
127명이 탐색했습니다.

How to Use Contains() with a String Array in LINQ Queries?

LINQ 쿼리에서 Contains(string)를 Contains(string[])로 바꾸는 방법

LINQ에서 Contains() 메서드는 다음을 수행할 수 있습니다. 컬렉션에 특정 요소가 포함되어 있는지 확인하는 데 사용됩니다. 기본적으로 Contains() 메서드는 단일 문자열 매개 변수를 사용하지만 문자열 배열과 비교해야 하는 경우 어떻게 해야 합니까?

질문:

다음과 같은 LINQ 쿼리:

from xx in table
where xx.uid.ToString().Contains(string[])
select xx
로그인 후 복사

string[] 배열의 값은 숫자입니다(예: 1, 45, 20, 10). Contains() 메서드를 사용하여 xx.uid 속성(숫자)이 배열에 있는지 확인하고 싶습니다. 어떻게 해야 합니까?

답변:

xx.uid를 문자열 배열과 비교하려면 Contains(string) 메서드를 직접 사용할 수 없습니다. 대신 string[] 배열을 Contains() 메서드를 지원하는 컬렉션으로 변환해야 합니다. 다음은 두 가지 접근 방식입니다.

  1. List 사용:

string[] 배열을 List 그런 다음 목록에서 Contains() 메서드를 사용합니다.

var uids = new List<string>(stringArray);
var selected = table.Where(t => uids.Contains(t.uid.ToString()));
로그인 후 복사
  1. 목록 사용 (uid도 int인 경우):

uid도 정수인 경우 string[] 배열을 List 그런 다음 목록에서 Contains() 메서드를 사용합니다.

var uids = stringArray.Select(int.Parse).ToList();
var selected = table.Where(t => uids.Contains(t.uid));
로그인 후 복사

확장 메서드(선택 사항):

문자열에 대한 확장 메서드를 만들 수도 있습니다. ] 유형을 사용하여 문자열 인수를 취하는 Contains() 메소드를 제공합니다.

public static bool Contains(this string[] arr, string value)
{
    return arr.Any(s => s == value);
}
로그인 후 복사

이 확장 메소드를 사용하면 string[] 배열의 Contains() 메서드:

var selected = table.Where(t => stringArray.Contains(t.uid.ToString()));
로그인 후 복사

위 내용은 LINQ 쿼리에서 문자열 배열과 함께 Contains()를 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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