2009-09-17 46 views
2

我正在寻找新的dotnet中的技巧,我可以使用返回字符串值的内联函数。下面是我有:使用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吗?

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

有些日子我非常非常愚蠢:-) – Matt 2009-09-17 23:09:14

+0

但是这并不返回一个字符串,而是一个'IEnumerable '。如果你想要一个字符串,你应该把上面的答案和Joren的使用'String.Join'的建议结合起来。奇怪的是'Join'接受一个数组,任何人都知道为什么它不需要'IEnumerable'或者'IList'? – JulianR 2009-09-17 23:44:41

+0

String.Join()在.NET 1.0中引入,但泛型仅在.NET 2.0中引入。 – 2009-09-17 23:53:56

1

听起来你正在考虑的LINQ to对象,或许还有一个.First()在最后得到一个字符串。

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将它们重新组合成一个字符串。