如何在String.format中声明一个变量并再次使用它,如:
String.Format("{0} {1}", int t = 1, new string[] { "a", "b" }.ElementAt(t));
更新
我只是想学习新的东西并在一行中键入代码
在这种情况下没有必要,但在其他情况下有用。
更新
我找到了另一个解决方案:
int indx;
var st = String.Format("{0} {1}", (indx=1), new string[] { "a", "b" }.ElementAt(indx));
答案 0 :(得分:1)
如果您愿意分享您为什么尝试这样做的原因,并且可能告诉我们您在做什么,那将是一件好事。
您的代码应该如下所示
int t = 1;
string[] myArray = new string[] { "a", "b" };
Console.WriteLine(string.Format("{0} {1}", t, myArray[t]));
你试图做的似乎没有任何意义,首先它不起作用。按照自己的方式进行操作会导致无法访问您创建的 t 和数组,即使它有效,也会与静态字符串string myString = "1 b"
相同。你的方式是你无法操纵这些变量,因为它们只存在于那一行的上下文中,并且每次执行时都会回到它们的初始值。
答案 1 :(得分:1)
这是不可能的。将string.format视为一个具有很少重载的方法,它需要MSDN link中提到的几组参数。你调用方法的方式不能满足你的意图,因此它会失败。 我不明白为什么你会尝试做这样的事情。