簡體   English   中英

C#中的結構或數據集列表?

[英]List of Structs or Dataset in C#?

我有一些我想要使用的數據。 兩個字符串和兩個數字,我說8000行數據。

數據集是這里使用的最佳選擇,還是我可以使用結構並擁有結構列表?

列表和數據集之間會有很大的性能差異嗎?

DataSetDataTable通常更加冗長,並且有一些訪問開銷,但通常可以與您正在使用的任何數據綁定類型的東西進行互操作。

如果您有選擇(即您沒有使用某個使用DataTable的組件),我強烈建議您使用適當的強類型集合,如通用ListDictionarySortedDictionary 我建議,如果您的項目有很長的路要走,那么從長遠來看,靈活性和透明度將使您受益。

PS兩個字符串和兩個數字足夠大,我懷疑你會看到使它成為struct而不是類的任何好處。 當然,你應該為自己描繪一下,但那是我的直覺。 我同意帖子提到你應該確定你理解兩者之間的根本區別,如果這是一個過早優化的情況。

好吧,我是根據有限的數據進行推斷,但你在結構列表和數據集之間詢問這一事實對我來說意味着你對C#有點新,並且沒有被引入結構是一個結構的事實ValueType因此存在於堆棧中。 您可能已經聽說過某個結構可以讓您在某個地方獲得“更好的性能”,並且希望獲得8000個項目列表的最佳性能。

首先,我認為你過早地進行了優化。 別。 做任何在你的程序范圍內工作的東西。 如果您以編程方式自己構建8000個項目列表,可能是從XML或平面文件構建,我建議您使用對象列表,因為這對您來說是最容易編程的。 您的帖子並不意味着您在兩個表格數據集之間存在關系,因此不需要DataSet。

也就是說,如果您以某種方式從數據庫接收該列表,並且您當前的數據層是ADO.NET 2.0(因此返回DataSet和DataTables),那么我會說使用它。 如果您從數據庫接收列表但尚未定義數據層,我建議您查看LINQ to SQLEntity Framework

同樣,我提醒你不要過早地進行優化,特別是考慮到你似乎不了解結構是如何工作的。 這是一個假設,如果我錯了,我會事先道歉。

取決於“與...合作”對您意味着什么。 如果我在DataGridView或其他控件中顯示數據,我會選擇DataSet / DataTable路由。 為您提供輕松過濾數據的能力。

同樣,List與DataSet的性能差異取決於您正在做什么。 列表非常適合迭代容器和那種性質的東西。 DataSets和DataTables提供了簡單的操作,例如ReadXML()(假設您已經獲得了XML數據),它將獲取元素,創建列並為您填充行。 這很方便。

除非你在相當嚴格的硬件上運行或者其他線程/進程有很多其他事情,否則8000項並不是非常大量的數據。 我根據我打算用它做的事情選擇我的容器。 如果我使用數據綁定,我會選擇DataSet。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM