2009-09-17 3 views
2

문자열 값을 반환하는 인라인 함수를 사용할 수있는 최신 닷넷에서 트릭을 찾고 있습니다. 여기에 내가 가진 무엇 : 나는 체인 방법 또는 익명 함수 전에 아마 본 적이 알고C#으로 dotNet 3.0+의 인라인 함수?

var split = new[] { " " }; 
var words = SearchTextBox.Text.Trim().Split(
       split, 
       StringSplitOptions.RemoveEmptyEntries); 
var textQuery = /*inlinefunction that operates on words array and returns a string.*/ 

... 내가

을 전체를 상상 여부 :-) 경우 그냥 회수 할 수 없습니다

답변

3

LINQ 생각하십니까? 당신이 문자열을 얻기 위해 마지막에 아마도 .First()으로, 객체에 LINQ에 대해 생각하는 것처럼

var textQuery = words.Select(word => word.ToLower()); 
+0

언젠가 나는 매우 바보입니다 .-) – Matt

+0

이것은 문자열을 반환하지는 않지만,'IEnumerable '를 반환합니다. 하나의 문자열을 원한다면 위의 대답과 Joren의 제안 인'String.Join'을 결합해야합니다. 이상한 것은'Join'이 배열을 취하는 방식으로, 누구나'IEnumerable' 또는'IList'를 사용하지 않는 이유를 알 수 있습니다. – JulianR

+0

String.Join()은 .NET 1.0에 도입되었지만 generics는 .NET 2.0에서만 제공되었습니다. –

1

는 소리.

var textQuery = words.Where(w => w.Length > 5).First(); 

모든 일을 만들기에 열쇠

는 lamdba 표현과 IEnumerable<T>하고 그것을 확장 방법을 연관된. 그것은 문자열에만 국한되지 않습니다.

1

쿼리 (또는 다른 IEnumerable)에서 문자열을 가져 오려면 String.Join을 사용할 수 있습니다. 예 :

string result = String.Join(" ", textQuery.ToArray()); 

그래서 다른 답변처럼 LINQ를 사용 후, '말'에서 작동하는 문자열로 재결합하는 String.Join를 사용하는 것이 좋습니다.