2017-11-11 6 views
1

内にあるように私は私がテキストから数字をつかむしようとしていますどこ私はこのエラーを理解し、解決するために苦労しています。ローカルまたはパラメータエラー、それはスコープ

事実上私はalternativeAirportPrice.Textからテキストを2枚持っています。一つは言う:

+156 on same day 

だから私は出力したいだけ156その他このテキスト から言う:

-156 on same day 

は、だから私は、出力のみにしたい - このテキストから156

私は実装foreachchar.IsNumber()を使用する方法ですが、cのエラーが表示されますSelect(c => c.toString())

エラーがある:

その名前が ローカルまたはパラメータを定義するために封入ローカルスコープにテストスイートを使用しているため、ローカルまたはパラメータ名「C」はこのスコープ内で宣言することはできません。

これを修正してテキストの数字だけを吐き出すにはどうすればよいですか?

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; 
} 

答えて

3

すでに次の行にあなたのコードでcを宣言しているので、これは次のとおりです。

foreach (char c in alternativeAirportPrice.Text) 

ですから、もう一度Selectでそれを使用することはできません。たとえばxのため、代わりに何か他のものを使用してみてください。

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

または実施例itemため、foreach内の他のものにcの名前を変更してみてください。

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

[OK]を、私はそれを行うだろう。一つの小さな質問です。私はこのコード行がわからない場合:alternativeAirportPrice.Text.ToCharArray()。(c => c.ToString())を選択します。テキストから番号を取得しています。それは空白に戻っているようです。私はこれを解決するために何をする必要があるか知っていますか? – BruceyBandit

+0

@ BruceyBanditはい。 。。この行では 'alternativeAirportPrice.Text.ToCharArrayは、()(X => x.ToString())てToArray()を選択し;'あなただけの 'X'を選択するが、それは 'alternativeAirportPrice.Text'を更新していません。おそらく、この行を他の変数に代入し、その変数を返すべきでしょう。しかし、この行は文字列ではなく配列を返すことに注意してください。注意深くこの行を処理する必要があります。 –

+0

私はすぐにこれを試したが、返す方法がわからないので、上のコードスニペット内で変数を割り当てる方法を教えてください。私の方法は文字列だから変数はvarだと思う。 – BruceyBandit

関連する問題