ArrayList上得到InvalidCastException

ArrayList上得到InvalidCastException

本文介绍了为什么我在ArrayList上得到InvalidCastException?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在第1页上有以下代码:



 ArrayList titles =  new  ArrayList(); 
ArrayList tagst = new ArrayList();
for int i = 0 ; hfc.Count; i ++)
{
// 此处用于获取关键字的代码并上传文本文件..没问题
ArrayList tags = new ArrayList();

titles.Add(GettitleAsString());
tagst.Add(tags);

}





我将两个arraysList移动​​到另一个页面使用session。


第二页上的




 ArrayList files =(ArrayList )会话[  files]; 
ArrayList tags =(ArrayList)Session [ tags];

for int i = 0 ; i < files.Count; i ++)
{
sb.Append( < h4> + files [i] + < / H4>中);
foreach (ArrayList a in 标签)
{
foreach string s in a)
{
sb.Append(s + );
}
}
}





当我想在arraylist中有一个单独的记录时,它工作正常,但是当我在ArrayList中有多个记录时,我得到

 InvalidCastException:无法  cast  object   类型'  System.String '在foreach上键入'System.Collections.ArrayList' 

(文件中的ArrayList a)

解决方案


从不使用 ArrayList ,但支持已经运行的旧软件的情况除外。早在.NET Framework v.2.0引入遗传学时,那些非泛型(非专用)类型就已经过时了。请改用 System.Collections.Generic.List<> 和其他通用类型。它们不易出错,因为它们可以帮助您避免类型转换,而不会影响性能。请参阅: []。



-SA


I have the following code on page1:

ArrayList titles = new ArrayList();
ArrayList tagst= new ArrayList();
for(int i=0;hfc.Count;i++)
{
//Here code to pick up keywords and upload text files .. No problem in it 
ArrayList tags= new ArrayList();

titles.Add(GettitleAsString());
tagst.Add(tags);

}



I move the two arraysList then to another page using session.

on the page two:

ArrayList files = (ArrayList)Session["files"];
ArrayList tags = (ArrayList)Session["tags"];

for (int i = 0; i < files.Count; i++)
{
   sb.Append("<h4>" + files[i] + "</h4>");
   foreach (ArrayList a in tags)
                        {
                            foreach (string s in a)
                            {
                                sb.Append(s + " ");
                            }
                        }
}



When I want to have one single record in arraylist, it works normally, but when I have multiple records in ArrayList, I get

InvalidCastException: Unable to cast object of type 'System.String' to type 'System.Collections.ArrayList'

on foreach (ArrayList a in files)

解决方案



这篇关于为什么我在ArrayList上得到InvalidCastException?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-25 12:35