日期:2014-05-18 浏览次数:20879 次
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; }