从文本文件中命名变量

时间:2012-06-24 21:53:41

标签: c# string variables naming

我正在用C#编写一个使用数学数组的程序。我已经定义了Conjunto类(在西班牙语中意为“设置”)。 Conjunto有一个ArrayList,包含集合的所有数字。它还有一个名为“ID”的字符串,它几乎就是它的声音; Conjunto实例的名称。 该程序具有在集合之间应用并集,交集等操作的方法。 一切都很好,但现在我的文本文件包含如下句子:

  • A = {1,2,3}
  • B = {2,4,5}
  • 交叉路口B
  • B union A

等等。问题是,我不知道文本文件包含多少集,我不知道如何在这些句子之后命名变量。例如,命名Conjunto A的实例,并命名另一个实例B.

对不起语法,英语不是我的母语。

谢谢!

3 个答案:

答案 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);
            }

希望它对某人有帮助。