我有一个字符串,我想按字符 x
拆分,然后想将结果字符串数组转换为用户定义的类型。例如,我有字符串 1800x1200
并想转换成我的名为 Layout
的类型,如下所示:
public class Layout
{
public Double LongSide { get; set; }
public Double ShortSide { get; set; }
}
最佳答案
对于类似的东西,您不需要 lambda 表达式或 LINQ 查询,您可以这样做:
string str = "1800x1200";
string[] array = str.Split('x');
Layout layout = new Layout()
{
LongSide = double.Parse(array[0]),
ShortSide = double.Parse(array[1])
};
请确保检查从 Split 返回的数组的大小,如果您的字符串可以包含非数值,也请考虑使用 double.TryParse
。
如果您正在处理字符串值的集合,而不是像这样的单个字符串,LINQ 会很有用:
List<string> list = new List<string>
{
"1800x1200",
"1600x1000",
"1400x800",
"1200x600",
};
List<Layout> layoutList
= list.Select(r => r.Split('x'))
.Select(r => new Layout
{
LongSide = double.Parse(r[0]),
ShortSide = double.Parse(r[1])
})
.ToList();
有了字符串集合,您可以使用 LINQ 获取自定义对象的集合。
关于c# - 拆分字符串并转换为自定义类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24700624/