我在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
答案 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.";