重複の可能性:
C#:構造体とクラス
私は、MP3ファイルのタグを含むデータベースを必要とする比較的小さいライブラリを作成しています。
整数、倍精度浮動小数点数などの固定サイズのデータがある場合は、構造体に固執する方がよいことを知っています...しかし、私の場合、文字列と、文字列、さらには他の構造体を含むリストがあります...構造、それはこのようになります:
Public Structure STitle
Dim Title As String
Dim Path As String
End Structure
Public Structure SAlbum
Dim Album As String
Dim Songs As List(Of STitle)
End Structure
Public Structure SArtist
Dim Artist As String
Dim Albums As List(Of SAlbum)
End Structure
次に、私はこのようなものを持っています:
Public SongLibrary As New List(Of SArtist)
文字列とリストは、特に速度的に私を混乱させます。たくさんの曲を検索するので、最速の曲を使用していることを確認したいと思います。
ボクシングとアンボクシングについても混乱しています。文字列のリストには「文字列」へのポインタのみが含まれており、構造体についても同じであると想定しています(低レベルを考えようとしています)。ただし、サイズを特定できないため(またはそうですか?)、検索を遅くするboxing-unboxing(配列リストを使用しない理由)が発生するかどうかはわかりません。
では、どれを選ぶのですか?クラス、または構造?または他にもっと適したものはありますか?