以编程方式命名变量c#

本文关键字:变量 方式命 编程 | 更新日期: 2023-09-27 18:28:28

我有大量嵌套的foreach循环,而且我的变量名已经用完了。。。我可以这样做吗:

 //int i = 1
 string "number"+i = new String("FirstElement");

我已经看到一些关于C和javascript等语言的帖子,但我不知道如何在C#中做到这一点。

如果你不能以其他变量的名字命名变量:否则这个问题怎么能解决?

以编程方式命名变量c#

这个问题本来可以,否则可以通过使用有意义的变量名称来解决-名称用完意味着概念用完,这很难相信。

如果您的需求是使用一组变量,那么将它们放在一个集合中;如果要让n数量的变量都严格由名称定义,则显式命名,依此类推。

var a = new List<int>(); 
for(int i=0;i<100;i++) 
{    
     a.Add(i); 
}
Console.WriteLine(a[0]);
Console.WriteLine(a[1]);
etc....

通过这种方式,您可以创建包含100个元素的列表,您可以通过nameoflist[index] 访问它们

不久前,我问了一个类似的问题:

Python——创建多个对象的巧妙方式?

基本上,如果你有很多非常相似的变量,比如variable_1、variable_2等,那么这通常意味着你应该使用一个数组或变量列表。

因此,创建一个字符串列表(或数组),而不是10个单独的字符串变量。

您的操作方式在C#中不起作用。不能在运行时创建变量。如果你愿意您必须使用一个列表来存储您的变量名称和值。所以,您最好创建一个类来保存变量的名称和值。

class Variable
{
   string Name;
   string  Value;
}

现在创建另一个类来保存变量

class VaraibleHolder
{
    List<Variable> Variables;
    VariableHolder()
    {
        Variables = new List<Variables>(); 
    } 
    public void Add(Variable Vbl)
    {
        Variable vbl = Variables.SingleOrDefault(v=>v.Name == Vbl.Name);
        if(vbl == null)
        {
            Variables.Add(vbl);  
        } 
    }
    public void Remove(string VblName)
    {
        //this is a lamda expression.
        Variable vbl = Variables.SingleOrDefault(v=>v.Name == VblName);
        if(vbl != null)
        {
            Variables.Remove(vbl);  
        }    
    }
    public Variable GetVariable(string VblName)
    {
         Variable vbl = Variables.SingleOrDefault(v=>v.Name == VblName);
         return vbl;  
    } 
}

因此,您可以使用变量持有者在运行时创建和存储可变值。希望这对你有帮助。