定义一个全局list变量result,如下:
public static class Result
{
public static int summer;
public static List<string> result = new List<string>() ;
}
在下表控件中赋值,输出到文本文件中,无误。
private void button1_Click(object sender, EventArgs e)
{ Result.result.Add(arraylist1[n]); }
但是,在另一个控件试图使用这个list数据,通过Result.result[item]引用,发现总是提示:超出其他信息: 索引超出范围。必须为非负值并小于集合大小。
private void button2_Click(object sender, EventArgs e)
{
MessageBox.Show(Result.result[0]);
}
于是把这个list数据试图输出到文本,发现文本为空。大概是因为空值,所以无论怎么引用都是超出索引。
可是,我明明通过控件button1 已经赋值了啊?并且能输出到文本。但是,试图通过button2来引用的时候,确是空值。
百思不得其解,在此先谢了。
困扰我好几个晚上了。
1.你确定Button1中的arraylist1[n]是非空字符串么。
2.在使用List的时候,尤其是使用索引检索result[0]时,一定要先判断,然后再使用,这是一个常识。不然在使用时很容易出现空引用异常问题。
判断List是否为空时,最好也判断时List是否初始化,你的这个已经初始化的没有问题。那就判断时List.Count 和item值进行判断。item的最大值只能取到Count - 1,即 item < Count;因为List下表是从零开始的。按照我说的一检查一下代码。如有帮助,请采纳。
我这样测试一点问题也没有啊, 你用一个变量去接收 arratlist[n],看看是不是没有值导致的