日期:2014-05-17  浏览次数:21104 次

IList<T>如何转成List<T>
IList<T>仅仅是所有泛型类型的接口,并没有太多方法可以用,如果仅仅是作为集合数据的承载体,那么IList<T>可以胜任。但是更多的时候,我们要对集合数据进行处理,从中筛选数据或者排序。这个时候IList<T>就爱莫能助了。
用过NHibernate和MyBatis.Net的人知道,查询数据库返回的结果集经常是IList<T>类型的,如何才能转成List<T>呢?

------解决方案--------------------
IList<int> s=...
var b= s as List<int> ?? new List<int>(s); 
------解决方案--------------------
public List<T> IListToList<T>(IList<T> list) {
 T [] array = new T[list.Count];
 list.CopyTo(array,0);
 return new List<T>(array);
}

------解决方案--------------------
引用:
C# code?12345public List<T> IListToList<T>(IList<T> list) { T [] array = new T[list.Count]; list.CopyTo(array,0); return new List<T>(array);}

脱裤子放屁,典型的。使用C#在没有特殊需求的情况下重复造轮子的行为是可耻的。

首先
public interface IList<T> : ICollection<T>, IEnumerable<T>, IEnumerable
而IEnumerable<T>有扩展方法,可以直接用
public static List<TSource> ToList<TSource>(this IEnumerable<TSource> source);
而且List<T>有如下构造函数
public List(IEnumerable<T> collection);

------解决方案--------------------

List<T> list=(List<T>)ilist;


------解决方案--------------------
不好意思
2、new List<T>(IList<T>)