목록

2011-11-08 1 views
0

내가목록

var target = new List<string>() { "C", "C-sharp", "java" };

내가 문자열 요청을 보내고있어 같은 문자열의 목록을 데에 문자열과 일치하는 방법 =

이 "C 프로그래밍 언어입니다" 목록은 문자열과 일치해야하며 반환해야

C,C-sharp

어떻게 캘리포니아 이럴 수있어? Linq에와 String.Contains 사용

+3

왜 이것을 위해 정규식이 필요합니까? 'string.StartsWith'는 괜찮습니다. – leppie

+0

귀하의 질문은 모호하지만 의견과 첫 번째 대답 모두에 답변을드립니다. regex를 사용하는 것은 비효율적이므로 피해야합니다. – FailedDev

답변

2

:

target.RemoveAll(str => !str.Contains("C")); 

당신이 정말로 (더 복잡한 뭔가를) 정규식을해야하는 경우 : Linq를하지 않고

var filtered = target.Where(str => str.Contains("C")); 

또 다른 옵션은, List<T>.RemoveAll를 사용하여 기존 목록을 변경하는 것입니다 다음을 사용할 수도 있습니다.

Regex validate = new Regex(".a.", RegexOptions.IgnoreCase); 
var filtered = target.Where(str => validate.Match(str).Success); 
+0

그는 'c'와 일치하면 단어의 첫 번째 색인을 선택하고 어떤 단어도 목록에서 'c'를 포함하지 않습니다. –

+1

@mekici - 순수한 추측이지만 쉽게 적용 할 수 있습니다. ':)'(음 ... 나는 바보 같은 "오류"에 대해 downvoted을 얻지 않기를 바라고, 실제 질문은 목록을 필터링하는 것입니다 ...) – Kobi

3

여기 있습니다. lluq과 lution

var m = from t in target 
       where t[0] == 'C' 
       select t;