我正在用C#编写一个使用数学数组的程序。我已经定义了Conjunto类(在西班牙语中意为“设置”)。 Conjunto有一个ArrayList,包含集合的所有数字。它还有一个名为“ID”的字符串,它几乎就是它的声音; Conjunto实例的名称。 该程序具有在集合之间应用并集,交集等操作的方法。 一切都很好,但现在我的文本文件包含如下句子:
等等。问题是,我不知道文本文件包含多少集,我不知道如何在这些句子之后命名变量。例如,命名Conjunto A的实例,并命名另一个实例B.
对不起语法,英语不是我的母语。
谢谢!
答案 0 :(得分:4)
动态创建变量非常复杂,除非你有一些已经存在的代码需要某些变量,否则它们会毫无用处。
使用Dictionary<string, Conjunto>
来保存您的班级实例。这样你就可以通过名字访问它们了。
答案 1 :(得分:3)
首先,如果你的目标是低于.Net 2.0,则使用List而不是ArrayList。如果我是你,我不会重新发明轮子。使用HashSet or SortedSet存储数字,然后您可以使用已定义的并集和交集。
其次,你的目标是什么?想要在所有操作之后只设置输出吗?您是否想要阅读并存储所有操作并在某些事件中处理它?</ p>
答案 2 :(得分:-1)
首先,您的程序是从不好的方面考虑的。我建议开始制作新的。动态命名“变量”的一种方法是制作类对象并编辑其属性。
这是我作为入门平台所做的:
首先我创建了一个名为set的类
class set
{
public string ID { get; set; }
public List<int> numbers { get; set; }
}
然后我编写了将整个文本文件排序到这些类列表中的代码:
List<set> Sets = new List<set>();
string textfile = "your text file";
char[] spliter = new char[] { ',' }; //switch that , to whatever you want but this will split whole textfile into fragments of sets
List<string> files = textfile.Split(spliter).ToList<string>();
int i = 1;
foreach (string file in files)
{
set set = new set();
set.ID = i.ToString();
char[] secondspliter = new char[] { ',' }; //switch that , to whatever you want but this will split one set into lone numbers
List<string> data = textfile.Split(secondspliter).ToList<string>();
foreach (string number in data)
{
bool success = Int32.TryParse(number, out int outcome);
if (success)
{
set.numbers.Add(outcome);
}
}
i++;
Sets.Add(set);
}
希望它对某人有帮助。