C# 泛型集合和特定数据类型数组之间的差异

C# 泛型集合和特定数据类型数组之间的差异,c#,C#,如果我没有记错,泛型集合将存储特定类型的对象。 例如,List只存储字符串类型的对象。 另外String[]arr=newstring[size]存储字符串类型的对象。 两者都支持IEnumerable接口。 所以我想知道泛型集合和特定类型数组之间的区别。数组的大小是固定的。你先定义尺寸,就这样。像List这样的集合具有可变的大小。它支持从集合中添加和删除项。在幕后,列表使用数组存储项目。它足够聪明,可以在必要时重新调整数组的大小 所以,您不应该考虑泛型vs数组,而应该考虑集合vs数组。也有非通

如果我没有记错,泛型集合将存储特定类型的对象。
例如,
List
只存储字符串类型的对象。
另外
String[]arr=newstring[size]
存储字符串类型的对象。
两者都支持
IEnumerable
接口。

所以我想知道泛型集合和特定类型数组之间的区别。

数组的大小是固定的。你先定义尺寸,就这样。像
List
这样的集合具有可变的大小。它支持从集合中添加和删除项。在幕后,
列表
使用
数组
存储项目。它足够聪明,可以在必要时重新调整
数组的大小

所以,您不应该考虑泛型vs数组,而应该考虑集合vs数组。也有非通用数组,但很少有使用这些数组的场景


您可以找到
列表
的文档

一个
数组
是固定大小的。你先定义尺寸,就这样。像
List
这样的集合具有可变的大小。它支持从集合中添加和删除项。在幕后,
列表
使用
数组
存储项目。它足够聪明,可以在必要时重新调整
数组的大小

所以,您不应该考虑泛型vs数组,而应该考虑集合vs数组。也有非通用数组,但很少有使用这些数组的场景


您可以找到
列表
的文档

一个
数组
是固定大小的。你先定义尺寸,就这样。像
List
这样的集合具有可变的大小。它支持从集合中添加和删除项。在幕后,
列表
使用
数组
存储项目。它足够聪明,可以在必要时重新调整
数组的大小

所以,您不应该考虑泛型vs数组,而应该考虑集合vs数组。也有非通用数组,但很少有使用这些数组的场景


您可以找到
列表
的文档

一个
数组
是固定大小的。你先定义尺寸,就这样。像
List
这样的集合具有可变的大小。它支持从集合中添加和删除项。在幕后,
列表
使用
数组
存储项目。它足够聪明,可以在必要时重新调整
数组的大小

所以,您不应该考虑泛型vs数组,而应该考虑集合vs数组。也有非通用数组,但很少有使用这些数组的场景


您可以找到
列表

的文档,它完全是关于如何使用它的。阵列显然更紧凑(占用更少的空间),但灵活性也更低。您可以将任意转换为任意,但转换需要时间和内存。如果您希望执行诸如
插入
添加
删除
排序
,则使用
列表
。如果您的优先级是按键
查找
,则两者都是不好的(使用
哈希表
作为示例)。数组很适合保存固定大小的数据(例如,组织循环缓冲区)或优化大小(内存),关键在于如何使用它。阵列显然更紧凑(占用更少的空间),但灵活性也更低。您可以将任意转换为任意,但转换需要时间和内存。如果您希望执行诸如
插入
添加
删除
排序
,则使用
列表
。如果您的优先级是按键
查找
,则两者都是不好的(使用
哈希表
作为示例)。数组很适合保存固定大小的数据(例如,组织循环缓冲区)或优化大小(内存),关键在于如何使用它。阵列显然更紧凑(占用更少的空间),但灵活性也更低。您可以将任意转换为任意,但转换需要时间和内存。如果您希望执行诸如
插入
添加
删除
排序
,则使用
列表
。如果您的优先级是按键
查找
,则两者都是不好的(使用
哈希表
作为示例)。数组很适合保存固定大小的数据(例如,组织循环缓冲区)或优化大小(内存),关键在于如何使用它。阵列显然更紧凑(占用更少的空间),但灵活性也更低。您可以将任意转换为任意,但转换需要时间和内存。如果您希望执行诸如
插入
添加
删除
排序
,则使用
列表
。如果您的优先级是按键
查找
,则两者都是不好的(使用
哈希表
作为示例)。数组很适合保存固定大小的数据(例如,组织循环缓冲区)或优化大小(内存)。