当前位置: 代码网 > it编程>编程语言>C# > C#中IList 与 List 的区别小结

C#中IList 与 List 的区别小结

2024年05月28日 C# 我要评论
ilist 接口和 list 类是 c# 中用于集合操作的两个重要的类型。它们之间的区别如下:1. 定义和实现方式:ilist 接口是一个抽象接口,定义了一组用于操作列表的方法和属性。它是 syste

ilist 接口和 list 类是 c# 中用于集合操作的两个重要的类型。

它们之间的区别如下:

1. 定义和实现方式:

ilist 接口是一个抽象接口,定义了一组用于操作列表的方法和属性。它是 system.collections 命名空间中的一部分,可以被其他类实现。
list 类是 ilist 接口的一个具体实现,它提供了 ilist 接口中定义的所有方法和属性的具体实现。list 类位于 system.collections.generic 命名空间中。

2. 泛型支持:

ilist 接口是非泛型接口,它可以存储任意类型的对象。
list 类是泛型类,它可以指定存储的元素类型,并在编译时进行类型检查,提供更好的类型安全性。

3. 功能和性能:

ilist 接口定义了一组基本的列表操作方法,如添加、删除、插入、索引访问等。它提供了对列表的基本操作支持,但不提供具体的实现。
list 类在 ilist 接口的基础上提供了更多的功能和性能优化。它使用动态数组来存储元素,可以高效地进行插入、删除和索引访问操作。此外,list 类还提供了一些额外的方法,如排序、查找等。

错误使用案例

using system;
using system.collections.generic;
namespace demoapplication{
   class demo{
      static void main(string[] args){
         ilist<string> ilist = new ilist<string>();
         //this will throw error as we cannot create instance for an ilist as it is an interface.
         ilist.add("mark");
         ilist.add("john");
         foreach (string list in ilist){
            console.writeline(list);
         }
      }
   }
}

下面的是正确案例

using system;
using system.collections.generic;
namespace demoapplication{
   class demo{
      static void main(string[] args){
         ilist<string> ilist = new list<string>();
         ilist.add("mark");
         ilist.add("john");
         list<string> list = new list<string>();
         ilist.add("mark");
         ilist.add("john");
         foreach (string lst in ilist){
            console.writeline(lst);
         }
         foreach (string lst in list){
            console.writeline(lst);
         }
         console.readline();
      }
   }
}

list转ilist的方法

/// <summary>
/// list转ilist公共方法
/// </summary>
/// <typeparam name="t"></typeparam>
/// <param name="listobjects"></param>
/// <returns></returns>
protected static ilist<t> converttogenericlist<t>(ilist listobjects)
{
      ilist<t> convertedlist = new list<t>(listobjects.count);
 
      foreach (object listobject in listobjects)
      {
           convertedlist.add((t)listobject);
      }
 
      return convertedlist;
}

总结:

  • ilist 接口是一个抽象的列表操作接口,可以被其他类实现。
  • list 类是 ilist 接口的一个具体实现,提供了更多的功能和性能优化。

到此这篇关于c#中ilist 与 list 的区别小结的文章就介绍到这了,更多相关c# ilist list 内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网! 

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com