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

本文关键字:WriteLine 函数 字符串 格式 添加 引用 for 循环 | 更新日期: 2023-09-27 18:35:54

在我开始提问之前,我已经到处看了(夸张),但一无所获,我认为这个问题可能令人困惑,但我正在尝试将变量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]);
        }

这在 c# 中有效吗? 将int i添加到 Console.WriteLine(..) 方法中。

我也尝试过:

Console.WriteLine("Expression param[{" + i+1 +"}]: {"+ i +"}", expression.Parameters[i]);

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

它的工作

Console.WriteLine("Expression param[{0}]: {1}", i+1, expression.Parameters[i]);

但是,如果您使用的是 C# 6,则字符串插值更好:

Console.WriteLine($"Expression param[{i+1}]: {expression.Parameters[i]}");
字符串

内插使您可以更轻松地设置字符串的格式。String.Format 及其表亲非常通用,但它们的使用有些笨拙且容易出错。特别不幸的是在格式字符串中使用编号占位符(如 {0}),它必须与单独提供的参数对齐。

参考: https://blogs.msdn.microsoft.com/csharpfaq/2014/11/20/new-features-in-c-6/

以这种方式使用它:

Console.WriteLine("Expression param[{0}]: {1}", i, expression.Parameters[i]);

{0} 是指格式 (i) 后的第一个参数。

{1} 是指格式 (expression.Parameters[i]) 之后的第二个参数。

等等。