这个问题是关于无重复变化的主题(是的,我做了研究,我只需要对我的任务中一个非常独特的问题有一些见解)。
基本上,我的任务是编写一个例程,找到一个5位字符串的所有可能的变体,然后将这些字符串添加到一个列表中。我的问题的棘手之处在于,字符串中的前3位是八进制数字0-7,字符串中的最后两位是字母数字表示0-7或A-Z* (不包括字母I和O)。
通过我的研究,我已经能够提出八进制集和字母数字集的单独组合。我还将组合显示给调试器,以确保它正常工作。
static void Main()
{
string[] octalset = { "0", "1","2","3","4","5","6","7" };
List<string> tracknum15 = new List<string>();
List<string> tracknum19 = new List<string>();
var v = new Variations<string>(octalset,3,GenerateOption.WithRepetition);
foreach (var vv in v)
{
System.Diagnostics.Debug.WriteLine(string.Join("", vv));
tracknum15.Add(vv);
}
string[] alphanumericset = { "0", "1", "2", "3", "4", "5", "6", "7", "A", "B", "C", "D", "E", "F", "G", "H", "J", "K", "L", "M", "N", "P", "Q", "S", "T", "U", "V", "W", "X", "Y", "Z" };
var a = new Variations<string>(alphanumericset, 2, GenerateOption.WithRepetition);
foreach (var aa in a)
{
System.Diagnostics.Debug.WriteLine(string.Join("", aa));
}
}我的主要问题是,我不知道如何生成一个组合列表,其中前三位是八进制的,后两位是字母数字的。第二个问题是,在生成组合后,我在将组合添加到列表时遇到了问题。
我将继续自己的工作,但我认为来自比我更有经验的人的洞察力将有助于解决我的问题。
如有任何帮助,我们不胜感激!
发布于 2017-04-26 00:29:12
如果我正确理解了您的问题,您希望创建每个可能的字符串,从3个oct开始,然后从0-7A-Z组中创建2个元素,不包括I和O。
这听起来像是你需要两个循环,一个创建从000到777的每个oct数字,第二个内部循环添加你的2元素部分。有关嵌套循环,请参阅此处,https://www.tutorialspoint.com/csharp/csharp_nested_loops.htm
string.Join("",vv)不是必需的,只需执行:(string) vv
https://stackoverflow.com/questions/43616041
复制相似问题