如何使用Linq提取双精度值并加入数组?

nhaq1z21  于 2023-02-06  发布在  其他
关注(0)|答案(1)|浏览(110)

下面是一个从字符串中提取值的逻辑。我想知道它是否可以用Linq语句运行。有什么提示吗?

string r = "#1:234.1;#2:2344.2:#3:38.0";
    List<double> v = new List<double>();
    foreach (var x in r.Split(';'))
    {
        foreach (var y in x.Split(':'))
        {
            if (string.IsNullOrWhiteSpace(y) == false && y.StartsWith("#") == false)
            {
                v.Add(double.Parse(y));
            }
        }
    }
    Console.WriteLine(string.Join("\n", v.ToArray()));
bz4sfanl

bz4sfanl1#

这是Linq形式的等效代码

var v = r.Split(';')
    .SelectMany(x => x.Split(':'))
    .Where(x => !string.IsNullOrWhiteSpace(x) && !x.StartsWith("#"))
    .Select(double.Parse)
    .ToList();

相关问题