我想在for循環中創建一個var,例如如何在C#中使用動態名稱創建變量?
for(int i; i<=10;i++)
{
string s+i = "abc";
}
這應該創建變量s0,s1,s2 ...到s10。
我想在for循環中創建一個var,例如如何在C#中使用動態名稱創建變量?
for(int i; i<=10;i++)
{
string s+i = "abc";
}
這應該創建變量s0,s1,s2 ...到s10。
由於您試圖重新定義變量「i」,因此您的第一個示例不適用於任何語言。這是循環控制中的int
,但循環體中有string
。
根據您的更新問題的最簡單方法是使用數組(在C#):如果是在語言的版本
string[] s = new string[10];
for (int i; i< 10; i++)
{
s[i] = "abc";
}
使用某種eval
。
這取決於語言。
通常當人們想要這樣做時,正確的做法是使用數據結構,如存儲關鍵名稱和關聯值的散列表/字典/映射。
很明顯,這高度依賴於語言。在大多數語言中,它是不可能的。在Javascript中,在瀏覽器中,以下工作:
for (var i = 0; i<10 ; i++) { window["sq"+i] = i * i; }
現在變量SQ3,例如,設定爲9
你可能想使用一個數組。我完全不知道他們在C#(我是一個Java的人)是如何工作的,但這樣的事情應該這樣做:
string[] s = new string[10];
for (int i; i< 10; i++)
{
s[i] = "abc";
}
而且讀 http://msdn.microsoft.com/en-us/library/aa288453(VS.71).aspx
您可以使用字典。 密鑰 - 對象 價值的動態名稱 - 對象
Dictionary<String, Object> dictionary = new Dictionary<String, Object>();
for (int i = 0; i <= 10; i++)
{
//create name
string name = String.Format("s{0}", i);
//check name
if (dictionary.ContainsKey(name))
{
dictionary[name] = i.ToString();
}
else
{
dictionary.Add(name, i.ToString());
}
}
//Simple test
foreach (KeyValuePair<String, Object> kvp in dictionary)
{
Console.WriteLine(String.Format("Key: {0} - Value: {1}", kvp.Key, kvp.Value));
}
輸出:
Key: s0 - Value: 0
Key: s1 - Value: 1
Key: s2 - Value: 2
Key: s3 - Value: 3
Key: s4 - Value: 4
Key: s5 - Value: 5
Key: s6 - Value: 6
Key: s7 - Value: 7
Key: s8 - Value: 8
Key: s9 - Value: 9
Key: s10 - Value: 10
您的公司從事什麼語言? – ChrisF 2009-07-18 16:38:45
你的意思是動態類型嗎? – exclsr 2009-07-18 16:40:31
請指定上下文... – 2009-07-18 16:40:58