2011-09-30 8 views
2

linq를 통해 데이터베이스에서 쉼표로 구분 된 값을 검색하는 방법. 내 시나리오는 사용자가 목록 상자에서 여러 값을 선택한 다음 해당 항목을 데이터베이스의 쉼표로 구분 된 필드에서 검색 할 수 있습니다. 값이 2,3 데이터베이스 필드 수 있도록 나는 두 항목을 선택이 2 기 때문에 1, 그것은 3 때문에 이산화질소를 기록하지 않고 기록에는 3 때문에linq의 쉼표로 구분 된 필드를 검색하는 방법

1,2,4,5 
1,4,3,6 
2,3,4,5 
1,4 

선택된 레코드가 레코드 여야 값 그것은 모두와, 더 4. 내가

string Commodites = "2,3"; 
obj.Where(e => Commodites.Contains(e.Id)).Distinct() 

입니다 시도하지 무엇하지만 값 2,3 나는 당신이 어떤 CSV 파서를 사용하도록 조언 CSV 분할 전용

답변

3

이있는 만 레코드를 선택 기록을 거부했다 단순히를 사용하지 않습니다. 10 방법.

string[] input = { "1,2,4,5", "1,4,3,6", "2,3,4,5", "1,4" }; 

var result = input.Where(l => l.Split(',').Any(s => new[] { "2", "3" }.Contains(s))); 
+0

string.split의 문제점은 무엇입니까? –

+0

@RitchMelton, 읽기 CSV 사양. 예를 들어','또는 새 줄이 이스케이프됩니다. 단순한 CSV 파일에서만 작동합니다. –

+1

Krill Polishxhuk - 맞습니다. 사물이 단순 할 때 사용할 수있는 간단한 도구입니다. –

관련 문제