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#在没有特殊需求的情况下重复造轮子的行为是可耻的。
首先
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>)