局部或参数错误,因为它在范围内

时间:2017-11-11 07:25:06

标签: c# linq

我正在努力理解并修复这个错误,我试图从文本中抓取数字。

我最后有alternativeAirportPrice.Text的两段文字。一个人说:

+156 on same day

所以我想从这个文本中只输出156 另一个说:

-156 on same day

所以我只想输出 - 这篇文章中的156

我实施foreach方法以使用char.IsNumber(),但我在c

中收到Select(c => c.toString())的错误

错误是:

  

本地或参数名称'c'不能在此范围内声明,因为   该名称是TestSuite,用于封闭的本地范围以定义   本地或参数。

我需要做些什么来解决这个问题,并且只能从文本中吐出数字?

public string GetAlternativeAirportPrice(By airportPriceLocator)
{
    var alternativeAirportPrices = _driver.FindElements(airportPriceLocator);

    foreach (var alternativeAirportPrice in alternativeAirportPrices)
    {
        if (alternativeAirportPrice.Displayed)
            foreach (char c in alternativeAirportPrice.Text)
            {
                if (char.IsNumber(c))
                {
                    alternativeAirportPrice.Text.ToCharArray().Select(c => c.ToString()).ToArray();
                }
            }
        return alternativeAirportPrice.Text;
    }
    return null;
}

1 个答案:

答案 0 :(得分:3)

这是因为您已在代码中的以下行中声明了c

foreach (char c in alternativeAirportPrice.Text)

因此,您无法再次在Select中使用它。请尝试使用其他内容,例如x

.Select(x => x.ToString())

或尝试将c重命名为foreach内的其他内容,例如item

foreach (char item in alternativeAirportPrice.Text)
{
    if (char.IsNumber(item))