如何在C#中的字符串中包含变量,例如对数组的引用

本文关键字:引用 数组 字符串 包含 变量 | 更新日期: 2023-09-27 18:29:51

我遇到了一个在main中调用并包含在同一类中的方法的问题。该方法正在输出一个字符串值,而我的问题是试图在字符串消息中包含对数组的引用。我收到信息

仅分配、调用、递增、递减和新对象表达式可以用作语句"

关于逗号和一大堆的无效表达式;预期与以下行有关:

searchResult = "Account #" + accountsarr[i] + " has a balance of {0:c}" + " for customer " + namesarr[i], balancesarr[i]";

全部采用以下方法:

public static string searchAccounts(ref int AccountNumber, int[] accountsarr, double[] balancesarr, string[] namesarr)
{
    bool isValidAccount = false;
    int i = 0;
    while (i < accountsarr.Length && AccountNumber != accountsarr[i])
    {
        ++i;
    }
    if (i != accountsarr.Length)
    {
        isValidAccount = true;
    }
    string searchResult;
    if (isValidAccount)
    {
        searchResult = "Account #" + accountsarr[i] + " has a balance of {0:c}" + " for customer " + namesarr[i], balancesarr[i]";
    }
    else
        searchResult = "You entered an invalid account";
    return searchResult;
}

那么,如何从一个引用了文本中数组位置的方法返回字符串呢?

如何在C#中的字符串中包含变量,例如对数组的引用

您应该使用字符串。格式如下:

 searchResult = string
        .Format("Account # {0} has a balance of {1:c} for customer {2}",
         accountsarr[i], balancesarr[i], namesarr[i]);

你得到的错误是语法错误,你有一个逗号而不是+和一个额外的"

您只知道为什么您的代码没有编译

searchResult = "Account #" + accountsarr[i] + " has a balance of {0:c}" 
     + " for customer " + namesarr[i], balancesarr[i]"; << this is an extra "
                                   //^ you cannot put a comma here

您可以简单地执行以下操作:

searchResult = "Account #" + accountsarr[i] + " has a balance of "+String.Format("{0:c}",balancesarr[i]) + " for customer " + namesarr[i];