【发布时间】:2014-01-28 23:36:18
【问题描述】:
我正在使用 Visual Studio 2013 和 C#
我希望能够将字符串变量的名称与我创建的字符串进行比较。
字符串变量名为 print1(例如)
public string print1;
然后我创建一个这样的字符串:
foreach (int number in orderOfNumber)
{
string printNumber = String.Format("print{0}", number-1);
}
如果 'number' = 1,我会丢弃它,所以我不关心数字是否为 0
我想做的是在 MessageBox 中用几行打印一个字符串。 一行将有点击屏幕上的两张图片之间的时间。 基本格式如下:
//耗时:
1 和 2 -> 1.234 秒
到目前为止,我所拥有的是:
orderBuilder.Append(String.Format("{0} and {1}\t\t", orderOfNumber[number-1], orderOfPicturesNumber[number])).Append("" + printNumber + "\n");
无论我如何尝试,我总是以
1 和 2 打印1
这接近我想要的值,因为 print1 的值实际上是 1.234
有没有办法用原始变量 print1 替换“字符串”print1?
【问题讨论】:
-
解释原始任务。您正在尝试做的事情看起来像是一个糟糕的设计决定。
-
改为创建数组,不要使用多个变量..
-
为什么没有
string[] prints(或其他collection)?然后您可以通过prints[number]获得预期值,而无需担心“print1”、“print2”、..“printN”变量。 -
@user2864740 这是一个非常简单而天才的想法。我不敢相信我没有想到这一点。这将使获得正确值变得容易得多。
-
@zerkms 我同意,这看起来确实是一个糟糕的设计决定。主要是因为它是。这只是让“操作员”知道每次点击之间需要多长时间的一种方式。数据也被添加到文本文件中,以便“操作员”稍后可以查看。这只是一个请求的好东西。
标签: c# string stringbuilder string.format