generic listについてはどうですか?
// define song object.
public class Song
{
public string FileLocation { get; set; }
public string FileName { get; set; }
public string Artist { get; set; }
public string Album { get; set; }
public string TrackTitle { get; set; }
public string AlbumArtwork { get; set; }
}
// create list of songs.
List<Song> songs = new List<Song>();
// add new song to list.
songs.Add(new Song {
FileLocation = "/filepath/sade.mp3",
FileName = "Sade",
Artist = "Sade",
Album = "Sade",
TrackTitle = "Smooth Operator",
AlbumArtwork "TBD"
});
// access first song in list.
Song song = songs[0];
// access property of song.
string trackTitle = song.TrackTitle;
もちろんあなたにも曲の性質複雑なオブジェクトを作ることによってobject-oriented design一層にこれを打破することができます。たとえば:
public class Album
{
public string Name
public DateTime ReleaseDate
public string Artwork { get; set; }
}
public class Artist
{
public string Name
public List<Album> Albums
}
public class Song
{
public string FileLocation { get; set; }
public string FileName { get; set; }
public Artist Artist { get; set; }
public string TrackTitle { get; set; }
}
そしては、例えば、次のようにアルバムのプロパティにアクセス:
string firstAlbumName = song.Artist.Albums[0].Name;
出典
2011-07-02 14:35:14
Kon
メタデータ、またはリストにアクセスするために高速になり、SQLのでしょうか?私はアクセスするために約<200k曲を持っています。 "リスト"を使用する方が簡単な解決策になると思われますが、SQLは最も効率的です。私はSQLについてよく知らないし、座って自分自身にSQLを教えなければならないよりも、上記のクラスを奨励する方が速いだろう。決定、決定....... – darthwillard
まあ、おそらく両方を使用する必要があります。すべてのデータをデータベースに保存します。次に、(いくつかの検索条件に基づいて)適切なデータを取得し、Songオブジェクトにデータを取り込み、そのデータをリストします。その後、これらのオブジェクトを使って作業し、フロントエンドに表示することができます。 – Kon
私は、ディスク上の長期的なものではなく、短期間でメモリにあなたの曲を保存する方法を尋ねていると仮定したので、ソリューションのオブジェクト/モデル部分だけをカバーし、データベース部分はカバーしませんでした。 – Kon