Create dynamic variable name

c#

Solution

C# is strongly typed so you can't create variables dynamically. You could use an array but a better C# way would be to use a Dictionary as follows. More on C# dictionaries here.

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<string, int> names = new Dictionary<string,int>();


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

Problem

Can we create dynamic variable in C#? I know my below code is threw error and very poor coding. But this code have small logic like create dynamic variable ``` 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; ``` Is it possible in c#? Create dynamic variable in c#? and change the variable name in c#? and concatenate the variable name in c#(like we can concatenate any control id or name)... Why I need the dynamic variable name (scenario): ``` var variablename="" var variablename0=No; var variablename1=Yes; var variablename2=No; ``` . . . I have a `gridview` with multiple rows. And I need assign server side variable to every row. So I need set of variables in server side. the only I can set `Text=<%# variablename+rowCount%>` for every template field. This `rowCount` means every grid row index. If the grid has 2 rows, Then `rowCount` values are 0,1,2 Now I need to change the `variablename` to `variablename0,variablename1,variablename2` dynamically for separate row.

Original source

Related problems