C#中IList 与 List 的区别小结

 更新时间:2024年04月15日 09:17:38   作者:那个那个鱼  
IList 接口和 List 类是 C# 中用于集合操作的两个重要的类型,本文主要介绍了C#中IList 与 List 的区别小结,具有一定的参考价值,感兴趣的可以了解一下

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 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • C#操作字符串方法总结实例代码

    C#操作字符串方法总结实例代码

    这篇文章主要介绍了C#操作字符串方法总结实例代码,需要的朋友可以参考下
    2017-10-10
  • C#实现多线程编程的简单案例

    C#实现多线程编程的简单案例

    这篇文章介绍了C#实现多线程编程的简单案例,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • 详解C# FileStream类

    详解C# FileStream类

    这篇文章主要介绍了详解C# FileStream类的相关知识,文中讲解的非常细致,代码供大家参考和学习,感兴趣的朋友可以了解下
    2020-06-06
  • C#图像对比度调整的方法

    C#图像对比度调整的方法

    这篇文章主要介绍了C#图像对比度调整的方法,涉及C#实现图像对比度操作的相关技巧,需要的朋友可以参考下
    2015-04-04
  • 详解WPF中的对象资源

    详解WPF中的对象资源

    这篇文章主要介绍了WPF中对象资源的相关资料,帮助大家更好的理解和学习使用WPF,感兴趣的朋友可以了解下
    2021-04-04
  • Unity UGUI实现简单拖拽图片功能

    Unity UGUI实现简单拖拽图片功能

    这篇文章主要为大家详细介绍了Unity UGUI实现简单拖拽图片功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-06-06
  • WCF实现的计算器功能实例

    WCF实现的计算器功能实例

    这篇文章主要介绍了WCF实现的计算器功能,结合具体实例形式较为详细的分析了WCF实现计算器功能的具体步骤与相关操作技巧,需要的朋友可以参考下
    2017-06-06
  • C# Winform程序实现防止多开的方法总结【亲测】

    C# Winform程序实现防止多开的方法总结【亲测】

    这篇文章主要介绍了C# Winform程序实现防止多开的方法,结合实例形式总结分析了C# Winform防止多开相关操作技巧与使用注意事项,需要的朋友可以参考下
    2020-03-03
  • c++函数转c#函数示例程序分享

    c++函数转c#函数示例程序分享

    这篇文章主要介绍了c++函数转c#函数示例程序,大家参考使用吧
    2013-12-12
  • SQL Server存储过程在C#中调用的简单实现方法

    SQL Server存储过程在C#中调用的简单实现方法

    这篇文章主要给大家介绍了关于SQL Server存储过程在C#中调用的简单实现方法,文中通过示例代码介绍的非常详细,对大家学习或者使用SQL Server存储过程具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-05-05

最新评论