c#concatenate List <string> plus string

时间:2017-02-19 20:15:26

标签: c# arrays string concatenation

我在c#中有这个列表:

List<string> cad_analise = new List<string>();

我补充说:

cad_analise.Add("FQ");
cad_analise.Add("CR");

所以,我想这样做

var joinstring = ""; 

joinstring = cad_analise[0] + ", second is " + cad_analise[1] + ", join the words.";

但是,我收到以下错误:

Index was out of range. Must be non-negative and less than the size of the collection.

我在这里做了一些测试,当我加入cad_analise [0]和cad_analise [1]时,我就认错了。

请在此处查看错误:https://dotnetfiddle.net/3rowFv

完美无缺:https://dotnetfiddle.net/G6JwFs

2 个答案:

答案 0 :(得分:1)

在您的代码示例https://dotnetfiddle.net/3rowFv中,您将拥有以下内容:

    bool has_analiseCR = true;
    bool has_analiseFQ = true;
    bool has_analisePCB = false;
    bool has_analise2FAL = false;
    bool has_analiseGP = false;

然后,您正在检查是否为has_analise List<string>添加值,如果为false则将其添加到cad_analise List<string>。所以最后:

has_analise看起来像:

[0] =&gt; “CR”

[1] =&gt; “FQ”

然后你在尝试第74行:

print_analise_cad = "Análise " + has_analise[0] + ", " + has_analise[1] + " e " + has_analise[2] + " do equipamento " + NumSerie_app + " e amostra de " + data_amostra + " foram cadastradas.";

您呼叫has_analise[2]的位置此索引不会退出,如上所示。 该列表只有索引[0]和[1]的值,而不是[2]

此外,您正在检查number_analise_cad if (number_analise_cad == 3)而不是基于number_analise_existente

的长度has_analise List<string>的长度

这就是为什么你让索引超出范围异常的原因。

答案 1 :(得分:0)

您可以验证here,您的(在问题中发布)代码可以正常运行。

我发现的唯一问题是在最后一行末尾缺少分号(但我想这是一个复制/粘贴错误):

joinstring = cad_analise[0] + ", second is " + cad_analise[1] + ", join the words.";