数组中的所有元素是否满足由另一个字符串数组确定的特定条件

Ler*_*ica 0 c# arrays algorithm

对不起标题,但我不知道很热,简要解释我需要做什么.

我有这个预定义的数组:

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

我们可以致电每封信Area.我们有一个变量NumberOfAreas,它保存一个从0(null)到17的整数值.这个值的含义是这个.如果NumberOfAreas= 5那么我们有字符串"A", "B", "C", "D", "E".如果NumberOfAreas= 3那么我们有"A", "B", "C"等等.该字符串始终以"A"字母顺序开头并按照字母顺序排列.

用户输入是所谓的SkippedAreas数组.它可以包含随机字母,这些字母不能复制并且在范围内A-Q.

是什么概念-如果我们有SkippedAreas数组= "A", "C"NumberOfAreas= 5 "A", "B", "C", "D", "E",然后我们必须保持NumberOfAreas跳过这封信等于5 "A""C"并加入接下来的两个字母,因此NumberOfAreas成为─ "B", "D", "E", "F", "G".

我们只能跳过已经在范围内的字母(区域),NumerOfAreas例如,如果我们在NumerOfAreas= 5 时获得基本示例,而字符串是"A", "B", "C", "D", "E"我们只能跳过这5个字母之一的字母.但是,通过跳过任何字母,我们打开访问下一行,所以如果我们第一次跳过,"A"我们可以自由使用"F"下一轮,如果"F"是用户输入字符串的一部分,SkippedAreas那么跳过"F"和打开是合法的"G".

我需要一个算法,我将能够验证用户输入.

J0H*_*0HN 6

使用LINQ

var FilteredAreas = 
    ListOfAreas.Where(a => !SkippedAreas.Contains(a)).Take(NumberOfAreas);
Run Code Online (Sandbox Code Playgroud)