创建动态变量名称

Ram*_*ran 35 c# asp.net asp.net-mvc c#-4.0

我们可以在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;
Run Code Online (Sandbox Code Playgroud)

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

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

var variablename=""
var variablename0=No;
var variablename1=Yes;
var variablename2=No;
Run Code Online (Sandbox Code Playgroud)

...

我有一个gridview多行.我需要为每一行分配服务器端变量.所以我需要服务器端的变量集.我唯一可以Text=<%# variablename+rowCount%>为每个模板字段设置.

rowCount意味着每个网格行索引.

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

现在,我需要改变variablename,以variablename0,variablename1,variablename2动态地为单独的行.

小智 43

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<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"];
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • @RameshRajendran,我认为你需要更抽象地思考这个问题.根据定义,变量是具有*值*的*key*,因此对于无法在编译时声明的变量的`Dictionary`是适当的数据结构. (9认同)
  • @Michael你对变量的定义帮助我理解C#中缺少动态变量并不是一个缺点,因为我们可以使用Dictionary.:) (2认同)

gle*_*eng 11

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

name[i] = i;
Run Code Online (Sandbox Code Playgroud)

在这种情况下,你name+iname[i].