在C#中使用lambdas在数组上执行多个函数

时间:2013-02-25 19:12:03

标签: c# string lambda

我有一个字符串,我想在特定的分隔符上拆分,然后从每个成员中删除起始和尾随空格。目前代码如下:

string s = "A, B, C ,D";
string[] parts = s.Split(',');
for(int i = 0; i++; i< parts.Length)
{
     parts[i] = parts[i].Trim();
}

我觉得应该有一种方法可以用lambdas做到这一点,所以它可以放在一条线上,但我无法绕过它。我宁愿远离LINQ,但我也不反对它作为解决方案。

string s = "A, B, C ,D";
string[] parts = s.Split(','); // This line should be able to perform the trims as well

我最近一直在使用Python,我认为这让我重新思考了如何考虑解决C#中的问题。

3 个答案:

答案 0 :(得分:8)

怎么样:

string[] parts = s.Split(',').Select(x => x.Trim()).ToArray();

答案 1 :(得分:4)

var parts = s.Split(',').Select(part => part.Trim());

答案 2 :(得分:1)

如果确实想要避免使用LINQ,则可以拆分多个字符并丢弃“,”和空格之间的额外“空”条目。请注意,您最终可能会得到奇怪的结果(例如,如果您有连续的“,”分隔符,则不会再在它们之间得到空字符串):

s.Split(new char[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries);

这适用于您的样本输入,但它非常脆弱。例如,正如@Oscar所指出的那样, 内部的空格将导致它们被分割。我强烈建议您选择其中一个基于LINQ的选项。