c#中怎么将泛型的List和ArrayList相互转化?
3个回答
展开全部
ArrayList a;
List<MyClass> l;
1.自定义函数:
IEnumerable<T> CastToList(ArrayList a) {
foreach(object item in a) {
if (item is T) yield
}
}
l = CastToList(a).ToList();
或者
l = new List(CastToList(a));
或者
l.AddRange(CastToList(a));
2.3.0中的扩展方法:
ArrayList.Cast<T>();
l = a.Cast<MyClass>().ToList();
或者
l = new List(a.Cast<MyClass>());
或者
l.AddRange(a.Cast<MyClass>());
List<MyClass> l;
1.自定义函数:
IEnumerable<T> CastToList(ArrayList a) {
foreach(object item in a) {
if (item is T) yield
}
}
l = CastToList(a).ToList();
或者
l = new List(CastToList(a));
或者
l.AddRange(CastToList(a));
2.3.0中的扩展方法:
ArrayList.Cast<T>();
l = a.Cast<MyClass>().ToList();
或者
l = new List(a.Cast<MyClass>());
或者
l.AddRange(a.Cast<MyClass>());
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个不是互相转换,只是互相赋值。。。
List<int> list = new List<int>();
for (int i = 0; i < 15; i++)
{
list.Add(i);
}
ArrayList aryList = new ArrayList();
aryList.AddRange(list);
for (int i = 0; i < 15; i++)
{
Console.Write(aryList[i] + ";");
}
Console.WriteLine();
List<int> list1 = new List<int>();
list1.AddRange(aryList.OfType<int>());
for (int i = 0; i < 15; i++)
{
Console.Write(list1[i] + ";");
}
Console.ReadLine();
List<int> list = new List<int>();
for (int i = 0; i < 15; i++)
{
list.Add(i);
}
ArrayList aryList = new ArrayList();
aryList.AddRange(list);
for (int i = 0; i < 15; i++)
{
Console.Write(aryList[i] + ";");
}
Console.WriteLine();
List<int> list1 = new List<int>();
list1.AddRange(aryList.OfType<int>());
for (int i = 0; i < 15; i++)
{
Console.Write(list1[i] + ";");
}
Console.ReadLine();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
他们之间不能直接转换,要写程序,循环取出每个值,再赋给另一个
不过可以用ToArray()的方法返回相应类型的数组
不过可以用ToArray()的方法返回相应类型的数组
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询