C#中的结构或数据集列表?

C#中的结构或数据集列表?,c#,arrays,list,dataset,C#,Arrays,List,Dataset,我有一些数据要处理。两个字符串和两个数字,我有8000行数据 数据集是这里使用的最佳选项,还是我可以使用结构并拥有结构列表 列表和数据集之间会有很大的性能差异吗?取决于“使用”对您意味着什么。如果我在DataGridView或其他控件中显示数据,我会选择DataSet/DataTable路由。使您能够对数据进行一些简单的筛选 同样,列表与数据集的性能差异取决于您正在做什么。列表对于遍历容器和类似的东西非常有用。数据集和数据表提供了诸如ReadXML()之类的简单操作(当然,假设您的数据是XML格

我有一些数据要处理。两个字符串和两个数字,我有8000行数据

数据集是这里使用的最佳选项,还是我可以使用结构并拥有结构列表

列表和数据集之间会有很大的性能差异吗?

取决于“使用”对您意味着什么。如果我在DataGridView或其他控件中显示数据,我会选择DataSet/DataTable路由。使您能够对数据进行一些简单的筛选

同样,列表与数据集的性能差异取决于您正在做什么。列表对于遍历容器和类似的东西非常有用。数据集和数据表提供了诸如ReadXML()之类的简单操作(当然,假设您的数据是XML格式的),这些操作将获取元素、创建列并为您填充行。那很方便


除非您运行在限制性很强的硬件上,或者其他线程/进程正在进行许多其他操作,否则8000项数据量并不是非常大。我会根据我的计划来选择我的容器。如果我使用数据绑定,我会选择数据集

DataSet
s和
DataTable
s通常更详细,需要访问一些开销,但通常可以与您正在使用的任何类型的数据绑定进行互操作

如果您有选择权(即,您没有连接到使用
DataTable
s的组件),我强烈建议您使用适当的强类型集合,如泛型
列表
字典
、或
分类字典
。我建议,从长远来看,灵活性和透明度将使您受益,如果您的项目具有长期性的话


另外,两个字符串和两个数字足够大,我怀疑您是否会看到将其变为
struct
而不是类的好处。当然,你应该自己分析一下,但这是我的直觉。我同意这篇文章的说法,如果这是一个过早优化的案例,你应该确信你理解两者之间的根本区别。

好的,我是根据有限的数据推断的,但是,您在结构列表和数据集之间询问的事实对我来说意味着您对C#有些陌生,并且还没有认识到结构是一个,因此存在于堆栈上。您可能听说过结构在某个地方赋予您“更好的性能”,并且希望为8000项列表获得最佳性能

首先,我认为您过早地进行了优化。不要。在你的计划范围内做任何事情。如果您自己以编程方式(可能是从XML或平面文件)构建8000个项目的列表,我建议您使用对象列表,因为这将是最容易编程的。您的帖子并不意味着您在两个表格数据集之间存在关系,因此不需要数据集

也就是说,如果您以某种方式从数据库接收到该列表,并且您当前的数据层是ADO.NET 2.0(因此返回数据集和数据表),那么我会说使用它。如果您正在从数据库接收列表,但您的数据层尚未定义,我建议您查看或


再次提醒您不要过早地进行优化,特别是考虑到您似乎不了解结构是如何工作的。同样,这是一个假设,如果我错了,我提前道歉。

您没有告诉我们足够的信息来正确回答您的问题。你打算如何处理这些数据?过滤它?坚持下去?分类?存储它?等等。您可以使用通用列表为GridView提供数据-这对于数据集/表来说不是一个优势。同意您可以这样做,但根据他的需要,DataTable解决方案可能会提供比列表更大的灵活性。这篇文章并不清楚,所以很难确定什么是最好的。我的很多数据都被拉/推到数据库中,我认为这些数据表非常方便。两个字符串和两个数字只是一个例子。我的实际数据有35个UINT和5个字符串,仍然不是很多。虽然我的问题并不理想,但我现在使用的方法是使用通用列表。谢谢大家的建议!对不起,当我谈论性能时,我并不是指优化。我更好奇的是,是否有理由不在数据集上使用结构的通用列表。我认为使用数据集会有很大的开销。尽管在再次阅读堆栈和堆之后,这非常有意义,我应该问一下类和数据集的通用列表。