以编程方式命名变量c#
本文关键字:变量 方式命 编程 | 更新日期: 2023-09-27 18:28:28
我有大量嵌套的foreach循环,而且我的变量名已经用完了。。。我可以这样做吗:
//int i = 1
string "number"+i = new String("FirstElement");
我已经看到一些关于C和javascript等语言的帖子,但我不知道如何在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;
}
}
因此,您可以使用变量持有者在运行时创建和存储可变值。希望这对你有帮助。