Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将for循环中的引用添加到WriteLine函数中的字符串格式?_C# - Fatal编程技术网

C# 如何将for循环中的引用添加到WriteLine函数中的字符串格式?

C# 如何将for循环中的引用添加到WriteLine函数中的字符串格式?,c#,C#,在我开始问这个问题之前,我已经到处看了(夸张),但什么也没想到,我认为这个问题可能会让人困惑,但我正在尝试将变量I传递给WriteLine(…)方法字符串中的参数,下面是一个示例 Expression<Func<int, int, int>> expression = (a, b) => a + b; for(int i = 0; i < expression.Parameters.Count; i++) {

在我开始问这个问题之前,我已经到处看了(夸张),但什么也没想到,我认为这个问题可能会让人困惑,但我正在尝试将变量
I
传递给
WriteLine(…)
方法字符串中的参数,下面是一个示例

Expression<Func<int, int, int>> expression = (a, b) => a + b;
        for(int i = 0; i < expression.Parameters.Count; i++)
        {
            Console.WriteLine("Expression param[{i+1}]: {i}", expression.Parameters[i]);
        }
以这种方式使用它:

Console.WriteLine("Expression param[{0}]: {1}", i, expression.Parameters[i]);
{0}
引用格式(
i
)后面的第一个参数

{1}
引用格式(
expression.Parameters[i]
)后面的第二个参数

等等。

它是有效的

Console.WriteLine("Expression param[{0}]: {1}", i+1, expression.Parameters[i]);
但如果使用C#6,字符串插值更好:

Console.WriteLine($"Expression param[{i+1}]: {expression.Parameters[i]}");
字符串插值使您可以更轻松地格式化字符串。Format和它的近亲是非常通用的,但是它们的使用有点笨拙并且容易出错。特别令人遗憾的是,在格式字符串中使用了{0}等带编号的占位符,这些占位符必须与单独提供的参数对齐

参考:


谢谢,我今天学到了一些新东西,C#6的字符串插值!
Console.WriteLine($"Expression param[{i+1}]: {expression.Parameters[i]}");