日期:2014-05-18 浏览次数:21025 次
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实现了这个接口
然后,一楼的办法是最初级的,很没必要。
我的解答是。
IList<T> inter; List<T> result = new List<T>(inter);
------解决方案--------------------
很明显,你的代码中,q.List() 是IList类型,而不是IList<T>类型,所以你必须先将q.List()强制转换成IList<T>,或者将q.List()转换成ArrayList了:
ArrayList output = new ArrayList(q.List()); return output;
------解决方案--------------------
/**//// <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;
}