0

タイトルで申し訳ありませんが、何をする必要があるかを簡単に説明するのは難しいです。

私はこの事前定義された配列を持っています:

string[] SkippedAreasArray = new string[] {"A", "B", "C", "D", "E", "F", "G",
            "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q"};

それぞれの文字を と呼ぶことができますAreaNumberOfAreas0(null) から 17 までの整数値を保持する変数があります。この値の意味は次のとおりです。NumberOfAreas= 5 の場合、 string があります"A", "B", "C", "D", "E"NumberOfAreas= 3の場合、次"A", "B", "C"のようになります。文字列は常に で始まり"A"、アルファベット順に従います。

ユーザー入力は、いわゆるSkippedAreas配列です。ランダムな文字を含めることができます。これは複製できず、範囲内にありますA-Q

アイデアは何ですか -SkippedAreas配列 ="A", "C"NumberOfAreas= 5 がある場合、または文字をスキップして次の 2 文字を追加することで、5 に等しい値を"A", "B", "C", "D", "E"維持する必要があるため、- になります。NumberOfAreas"A""C"NumberOfAreas"B", "D", "E", "F", "G"

の範囲内にある文字 (領域) のみをスキップできます。たとえば、 = 5 のNumerOfAreas場合の基本例を取得し、文字列が の場合、これらの 5 文字のいずれかである文字のみをスキップできます。ただし、任意の文字をスキップすると、次の行へのアクセスが開かれるため、最初にスキップした場合、次のラウンドで自由に使用でき、ユーザー入力文字列の一部である場合は、スキップして開くことができます。NumerOfAreas"A", "B", "C", "D", "E""A""F""F"SkippedAreas"F""G"

ユーザー入力を検証できるアルゴリズムが必要です。

4

1 に答える 1

6

LINQ を使用する

var FilteredAreas = 
    ListOfAreas.Where(a => !SkippedAreas.Contains(a)).Take(NumberOfAreas);
于 2013-04-01T19:10:39.633 に答える