Crear nombre de variable dinámica

¿Podemos crear variables dinámicas en C #?

Sé que mi código de abajo arrojó errores y una encoding muy pobre. Pero este código tiene una lógica pequeña como crear una variable dinámica

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; 

¿Es posible en c #? Crear variable dinámica en c #? y cambiar el nombre de la variable en c #? y concatenar el nombre de la variable en c # ( como podemos concatenar cualquier identificación o nombre de control ) …

Por qué necesito el nombre de la variable dinámica (escenario):

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

. . .

Tengo una vista de gridview con múltiples filas. Y necesito asignar variable del lado del servidor a cada fila. Entonces necesito un conjunto de variables en el lado del servidor. el único que puedo establecer es Text= para cada campo de plantilla.

Este rowCount significa cada índice de fila de cuadrícula.

Si la grilla tiene 2 filas, entonces los valores de rowCount son de 0,1,2

Ahora necesito cambiar el nombre de la variablename a variablename0,variablename1,variablename2 dinámicamente para una fila separada.

C # está fuertemente tipado por lo que no puede crear variables dinámicamente. Podría usar una matriz pero una mejor forma de C # sería usar un diccionario de la siguiente manera. Más sobre los diccionarios C # aquí .

 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"]; } } } 

No, eso no es posible. Deberías usar una matriz en su lugar:

 name[i] = i; 

En este caso, su name+i es name[i] .

prueba este, el usuario json para serializar y deserializar:

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

Los nombres de las variables deben conocerse en tiempo de comstackción. Si tiene la intención de poblar esos nombres dinámicamente en tiempo de ejecución, puede usar una List

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

aquí cadena de entrada tal vez cualquier texto o lista

Esto no es posible, le dará un error de tiempo de comstackción,

Puede usar una matriz para este tipo de requisitos.

Para tu referencia :

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