如何使用字符串声明变量?

时间:2013-01-13 03:34:37

标签: c# string

我需要声明一个名称与字符串匹配的变量。

这是我需要工作的,但实际上它使用名为"s"的新表达式实例进行编译(我需要它来获取存储在字符串s中的名称) 我该如何解决这个问题?

代码:

foreach (string s in StringArray)
            {
                if (SomeDifferentArray.Contains(s) != true)
                {
                    Expression s = new Expression(); 
                }
            }

我需要StringArray中每个字符串的新表达式实例,并且每个表达式都需要根据字符串所包含的字面值进行命名。

2 个答案:

答案 0 :(得分:2)

这似乎是映射集合的用例。我自己不是C#用户,但我怀疑字典类是那样的:

http://msdn.microsoft.com/en-us/library/xfhwa508.aspx

C#是一种编译语言,因此您无法创建依赖于运行时数据的编译时变量。但是,您可以使用地图样式的数据结构将唯一键对象与单个值对象相关联。在您的情况下,您可以使用它将每个string与一个Expression相关联。

Dictionary<string, Expression> myExpressionDict = new Dictionary<string, Expression>();

foreach(string s in StringArray) {
    if(!SomeDifferentArray.Contains(s)) {
        myExpressionDict[s] = new Expression();
    }
}

完成此循环后,对于原始s中的任何字符串SomeArray,您可以myExpressionDict[s]获取其关联的Expression对象。

在C#中,这种结构被称为&#34;字典。&#34;这个相同的数据结构也可以通过名称&#34; map&#34;或&#34;哈希,&#34;取决于您的编程语言或库。例如,在Java集合框架中,它被称为Map,在Ruby中,它们使用术语hash,而在Python中,它使用名称字典(或简称dict)。

答案 1 :(得分:0)

您可以使用地图或字典。不完全是你要问的,但更简单。