【问题标题】:2 ways of list making in c# [duplicate]c#中的2种列表制作方法[重复]
【发布时间】:2019-12-27 13:42:36
【问题描述】:

这两种在c#中制作列表的方式有什么区别?

第一个:

List<string> aList = new List<string> {"first" , "second"}

第二个:

string[] aList = {"first", "second"}

第二种方式存在吗?!!

谢谢

【问题讨论】:

  • 那么,它们是一样的吗?
  • 第一个是List&lt;string&gt;,第二个是字符串数组。这是两种不同类型的系列,各有优缺点,每一种都更适合不同的工作(尽管有很多相似之处)
  • 你的代码甚至没有编译队友
  • 第一个无法编译,因为它缺少类型参数,第二个不是列表而是数组
  • 在 C# 中,数组是这样初始化的:string[] arrayFruit = new string[]{"Apple", "Banana"};访问数组:使用数组索引,如 arrayFruit[0] 将返回 Apple。

标签: c# list


【解决方案1】:

您指的两种类型是:

  1. Collection 的一种类型称为List,将定义为List aList = new List {"first" , "second"}
  2. 一个数组,定义为string[ ] aList = {"first", "second"}

数组是固定长度的,即您通常将其定义为包含一定数量的字符串。相比之下,List 将随着您添加元素而不断增长(在后台,它将数据存储在动态数组中(即随 List 增长和缩小的数组)。

您还可以使用许多其他集合,List 不是唯一一个;这取决于您希望如何表示您的数据。

看看the Microsoft Documentation for Selecting a Collection class

【讨论】:

  • 据我了解 List 更常用于编码,对吧?为什么有人要使用数组!???它是固定的!
  • 我不能说哪个更常见。如果您知道要存储多少数据,则 Array 会更有效。例如,字符串实际上只是一个字符数组。你知道“有趣”这个词有 11 个字符并且永远不会改变 - 那么,如果你有一个固定长度的项目,为什么还要麻烦创建一个包含所有背景代码的列表来扩展它?
  • 完美解释! Tnx 很多:)
  • 现在我了解了这两个的区别,但我的代码无法编译: List newList = new List { "first", "second" };我收到此错误:严重代码描述项目文件行抑制状态错误 CS0246 找不到类型或命名空间名称“列表”(您是否缺少 using 指令或程序集引用?)
  • 您是否在使用诸如 Visual Studio 之类的 IDE?通常它可以为您修复这些类型的错误。 List 是 System.Collections.Generic 命名空间的成员,因此您需要告诉程序在文件顶部使用 using System.Collections.Generic; 来查找它。
【解决方案2】:

List&lt;string&gt; aList = new List&lt;string&gt; {"first" , "second"} 创建一个实际的列表(它是一种集合)对象,而string[ ] aList = {"first", "second"} 创建一个数组。

我想你会发现数组和集合之间是有区别的。以下是其中的一些:

  1. 数组是一组相似的数据类型对象。集合是一组 同构和异构数据类型对象。
  2. 数组的大小是固定的。收藏的大小不固定。
  3. 数组是强类型。集合不是强类型的。我们使用泛型类型使其更强大。

希望这会有所帮助。

【讨论】:

  • 不知道为什么要引用非通用集合。我怀疑这会对 OP 有多大帮助——即使它是正确的。
  • 我没有得到第三个区别!
  • @Farbod,您可以在 stackoverflow 上搜索“c# 中的强类型”。为此提出了许多票。如果您有任何进一步的疑虑(这些票证上没有说明),请提出新的票证。希望这可以帮助。谢谢
猜你喜欢
  • 1970-01-01
  • 2020-05-22
  • 2010-12-20
  • 1970-01-01
  • 2023-01-18
  • 2013-09-10
  • 2021-02-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多