首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

请教怎么将IList转换为List,解决就给分

2011-12-29 
请问如何将IList转换为List,解决就给分!同题~[解决办法]C# codeprivate ListT Convert(System.Collectio

请问如何将IList转换为List,解决就给分!
同题~

[解决办法]

C# code
private List<T> Convert(System.Collections.IList listObjects){    List<T> convertedList = new List<T>();    foreach (object listObject in listObjects)    {        convertedList.Add((T)listObject);    }    return convertedList;}
[解决办法]
直接强制转换。
[解决办法]
首先,直接强制转换很可能会异常,毕竟不止List实现了这个接口

然后,一楼的办法是最初级的,很没必要。

我的解答是。
C# code
IList<T> inter;List<T> result = new List<T>(inter);
[解决办法]
很明显,你的代码中,q.List() 是IList类型,而不是IList<T>类型,所以你必须先将q.List()强制转换成IList<T>,或者将q.List()转换成ArrayList了:
C# code
ArrayList output = new ArrayList(q.List());return output;
[解决办法]
探讨
我用了您的方法:
List <T> output = new List <T>(q.List());
return output;

可是报错,说没有List <T>(System.Collections.IList list)这个方法:
Error 2 The best overloaded…

[解决办法]
C# code
/**//// <summary>    /// 转换IList<T>为List<T>    /// </summary>    /// <typeparam name="T">指定的集合中泛型的类型</typeparam>    /// <param name="gbList">需要转换的IList</param>    /// <returns></returns>    public static List<T> ConvertIListToList<T>(IList gbList) where T : class    {        if (gbList != null && gbList.Count > 1)        {            List<T> list = new List<T>();            for (int i = 0; i < gbList.Count; i++)            {                T temp = gbList[i] as T;                if (temp != null)                    list.Add(temp);            }            return list;        }        return null;    } 

热点排行