前提/実現したいこと
プログラミング初心者です。C#の学習テキストを挑戦している途中です。
EnumerableクラスのRangeメソッドを使用したいと考えています。
「ランダムにパスワードを生成するアプリ」を開発しています。
課題として、LINQ機能を用いて「小文字のエル(l)」が選択されなくなるまで実行し続ける という仕様にする予定です。
※小文字のエルを使用しない という意味です
テキストに記載されている以下のコードを入力してみたのですがEnumerable.Range
の箇所でエラーが出てしまいます。
エラーメッセージ→ 現在のコンテキストに 'Enumerable' という名前は存在しません。
C#
1using System; 2using System.Collections.Generic; 3using System.Text; 4 5namespace PasswordCreator 6{ 7 public class LowerLetter:Letter { 8 public LowerLetter(Random random) : base(random) { } 9 public override string GetLetter() { 10 11 string[] lowers = Enumerable.Range(97, 26).Where(x => x != 108) 12 .Select(x => ((char)x).ToString()).ToArray(); 13 int n = random.Next(lowers.Length); 14 return lowers[n]; 15 16 } 17 } 18}
試したこと
usingにusing System.Linq;
を追加してみましたが、以下のエラーメッセージが表示されました。
型または名前空間の名前 'Linq' が名前空間 'System' に存在しません (アセンブリ参照があることを確認してください)。
C#
1using System; 2using System.Collections.Generic; 3using System.Text; 4using System.Linq; 5
補足情報
・クラスLowerLetterはパスワードの「小文字のルール」を記述したクラスです。
・テキストにはC#3.0以降から、LINQ機能が使えるようになった。というような記述がありました。
・私が使用しているC#のバージョンが古い可能性もあるのでしょうか?
・IEnumerable(戻り値?)はポップアップが表示されて、問題なく使用できるようです。
ちぐはぐな質問で申し訳ないです。
テキスト名「ITエンジニアになる! チャレンジ C#プログラミング」横山達大 著
回答1件
あなたの回答
tips
プレビュー