拆分文本和转换linq

bar*_*oma 6 c# linq

我有一个字符串数组,并希望使用LINQ将其转换为double数组.我不想使用foreach循环.

var texts = new List<string> 
{"-87.98 65", "-86.98 75", "-97.98 78", "-81.98 65"}
Run Code Online (Sandbox Code Playgroud)

至:

var numerics = new List<IEnumerable<double>> 
{
     new List<double>{-87.98, 65},
     new List<double>{86.98, 75},
     new List<double>{-97.98 78},
     new List<double>{-81.98 65}
}
Run Code Online (Sandbox Code Playgroud)

LINQ有什么简短的方法吗?

Pat*_*man 7

你可以用这个:

var doubles = texts.Select(x => x.Split()
                                 .Select(y => double.Parse(y, CultureInfo.InvariantCulture))
                                 .ToList()
                                 .AsEnumerable() // added to comply to the desired signature
                          )
                   .ToList() // added to comply to the desired signature
                   ;
Run Code Online (Sandbox Code Playgroud)

它首先选择字符串,将其拆分为空格,然后解析字符串数组中的字符串以使其翻倍.该输出将转换为列表.

  • 我认为x.Split()就足够了 (3认同)