如何减少将分号列表拆分/修剪为一行的这四行代码?

时间:2010-01-08 16:06:21

标签: c# split

我该怎么做:

string list = "one; two; three;four";

List<string> values = new List<string>();
string[] tempValues = list.Split(new char[] {';'}, StringSplitOptions.RemoveEmptyEntries);
foreach (string tempValue in tempValues)
{
    values.Add(tempValue.Trim());
}

在一行中,如下所示:

List<string> values = extras.Split(';').ToList().ForEach( x => x.Trim()); //error

3 个答案:

答案 0 :(得分:7)

如果要对Select中的每个实例执行转换,则需要使用IEnumerable<T>

List<string> values = list.Split(new char[] {';'}, StringSplitOptions.RemoveEmptyEntries).Select(x => x.Trim()).ToList();

答案 1 :(得分:3)

简单 - 使用LINQ选择方法:

var values = "one; two; three;four".Split(new char[] {';'}, StringSplitOptions.RemoveEmptyEntries).Select(str => str.Trim());

答案 2 :(得分:-1)

List<string> values = new List<string>(list.Split(new char[] { ';', ' ' }, StringSplitOptions.RemoveEmptyEntries));

不需要明确的Trim()。 LINQ也不是。如果其他空格可能存在,请将\t\r\n添加到char []。