在python中打印11个变量的列表,我会使用“Exec”。有一个包含11个项目的列表,此代码将打印出来。
for count in range(1,11):
question = ("print " + "question" + str(count))
exec question
我如何在C#中做类似的事情? (不使用列表)
这是我到目前为止所拥有的
string line;
for (int i = 1; i < 200; i++)
{
line = ("Console.WriteLine(scene1_f"+i);
// Execute "line"
}
感谢。
答案 0 :(得分:1)
我认为,如果你在尝试使用c#语言的时候阅读一些东西,那将是明智之举。同时,如果我在尝试回答这些问题之前查阅了一些Python教程,那将是明智的。
虽然c#支持动态类型和表达式,但它主要用于创建&#34;强类型&#34;结构体。对于您提供的示例,我相信没有简单/简单的直接翻译。
你的&#34; scene1_f1&#34;通过&#34; scene1_f200&#34;变量可能是某些c#类型的实例,如Scene
类,它具有一些在对象实例上运行的属性和方法。
如果你有多个Scene
对象要执行相同类型的操作(比如在示例中将它们打印到控制台),通常认为以某种方式对它们进行分组是很好的做法,例如将它们添加到List或将它们存储在Array中。
为了说明我的意思,我添加了一个假设的例子:
public class Scene
{
public Scene(string name)
{
Name = name;
}
public string Name { get; set; }
// ... more properties
public void Draw()
{
// logic for drawing
}
// ... more methods.
public override string ToString()
{
// here return what you would want to have as
// a string representation of a Scene object.
return "Scene " + Name;
}
}
// in a different part of your code, create and add the Scene objects
var scenesList = new List<Scene>();
scenesList.Add(new Scene("Some scene name"));
// add more
// Now you can print them to the console like this:
foreach (var scene in scenesList)
Console.WriteLine(scene);