c# - 列表接口(interface) : from Java to C#

标签 c# java list interface generic-collections

我是一名 Java 程序员,最近在学习 C#。

通常在 Java 中使用列表时,最好针对其接口(interface)进行编程以便在实现之间切换:

List<Object> list = new ArrayList<Object>();
//or
list = new LinkedList<Object>(); 

C# 呢?是否存在类似的方法?有人可以给我举个例子吗?从现在开始,我正在以这种方式构建一个列表,但我不认为 List 是一个接口(interface):

List<int> list = new List<int>();
list.Add(2);

最佳答案

在 .NET 中,最好使用层次结构中尽可能高的对象。你可以使用 IList<T> 接口(interface):

IList<int> list = new List<int>();
list.Add(2);

如果您不需要按索引访问列表,您也可以使用 ICollection<T> 层次结构中更高的接口(interface)。

或者,如果您只想枚举列表,您可以使用尽可能高的接口(interface),即 IEnumerable<T> :

IEnumerable<int> list = new List<int>(new[] { 1, 2, 3 });
foreach(int item in list)
{
    ...
}

关于c# - 列表接口(interface) : from Java to C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7912740/

相关文章:

java - 分隔的整数列表

java - 运行jar依赖的java类文件

C - 使用排序算法交换链表中的节点

arrays - 如何在 PowerShell 中将 HashSet 转换为 ArrayList?

python : list of dictionary values by alphabetical order of keys

c# - 通用类和接口(interface)的非通用版本

c# - RFID - 领先的零问题

c# - 在 Main 中使用 Keyboard.IsKeyDown() 时出现 System.InvalidOperationException

c# - 确定类 x 是否派生自类 y 的最简单方法? (C#)

java - 使用 AssetManager.list 列出子目录中的 Assets