创建动态变量名称

我们可以在C#中创建动态变量吗?

我知道我的下面的代码是错误和编码很差。 但是这段代码有很小的逻辑,比如创建动态变量

var name=0; for(i=0;i<10;i++)// 10 means grid length { name+i=i; } var xx1=name1; var xx2=name2; var xx3=name3; 

在c#中有可能吗? 在c#中创建动态变量? 并在c#中更改变量名称? 并在c#中连接变量名称( 就像我们可以连接任何控件ID或名称 )…

为什么我需要动态变量名称(方案):

 var variablename="" var variablename0=No; var variablename1=Yes; var variablename2=No; 

。 。 。

我有一个多行的gridview 。 我需要为每一行分配服务器端变量。 所以我需要服务器端的变量集。 我唯一可以为每个模板字段设置Text=

rowCount表示每个网格行索引。

如果网格有2行,则rowCount值为0,1,2

现在我需要动态地将variablename0,variablename1,variablename2更改为variablename0,variablename1,variablename2以用于单独的行。

C#是强类型的,因此您无法动态创建变量。 您可以使用数组,但更好的C#方式是使用Dictionary,如下所示。 更多关于C#字典的信息 。

 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace QuickTest { class Program { static void Main(string[] args) { Dictionary names = new Dictionary(); for (int i = 0; i < 10; i++) { names.Add(String.Format("name{0}", i.ToString()), i); } var xx1 = names["name1"]; var xx2 = names["name2"]; var xx3 = names["name3"]; } } } 

不,那是不可能的。 您应该使用数组:

 name[i] = i; 

在这种情况下,您的name+iname[i]

尝试这个,用户json序列化和反序列化:

  using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Web.Script.Serialization; namespace ConsoleApplication1 { public class Program { static void Main(string[] args) { object newobj = new object(); for (int i = 0; i < 10; i++) { List temp = new List(); temp.Add(i); temp.Add(i + 1); newobj = newobj.AddNewField("item_" + i.ToString(), temp.ToArray()); } } } public static class DynamicExtention { public static object AddNewField(this object obj, string key, object value) { JavaScriptSerializer js = new JavaScriptSerializer(); string data = js.Serialize(obj); string newPrametr = "\"" + key + "\":" + js.Serialize(value); if (data.Length == 2) { data = data.Insert(1, newPrametr); } else { data = data.Insert(data.Length-1, ","+newPrametr); } return js.DeserializeObject(data); } } } 

变量名称应在编译时知道。 如果您打算在运行时动态填充这些名称,可以使用List

  var variables = List(); variables.Add(new Variable { Name = inputStr1 }); variables.Add(new Variable { Name = inputStr2 }); 

这里输入字符串可能是任何文本或任何列表

这是不可能的,它会给你一个编译时错误,

您可以使用数组来满足此类要求。

供你参考 :

http://msdn.microsoft.com/en-us/library/aa288453%28v=vs.71%29.aspx