概述
我有一个用逗号分隔的字符串,表示对象和空格,表示这些对象的属性:
string sOrderBy = "Column1 ASC, Column2 DESC";
我需要将其转换为List<OrderByColumn>
where OrderByColumn
is:
public class OrderByColumn
{
public string ColumnName { get; set; }
public bool IsAscending { get; set; }
}
问题
sOrderBy.Split(',').Select(x => new OrderByColumn()
{
ColumnName = x.Trim().Split(' ')[0].Trim(),
IsAscending = x.Trim().Split(' ')[1].Trim() == "ASC" ? true : false
}).ToList<OrderByColumn>();
x.Trim().Split(' ')
上面的代码有效,但多次调用存在一些冗余。(另外,我知道代码当前假定存在 0 和 1 数组值)。
有没有办法消除这种冗余?以某种方式将结果传递x.Trim().Split(' ')
给匿名函数,然后OrderByColumn
从那里返回一个对象?
我知道我可以使用两个 for/foreach 循环来解决这个问题,但是 linq 和 lambdas 太酷了!:-)