0

これには Dictionary または SortedList を使用する予定でしたが、計画中にプロジェクトが進化したため、どうすればよいかわかりません。

私のサイトは DB クエリから一連の結果をロードするため、これらの結果をどこかに保存できる必要があります。

結果は次のようになります。

これにはどのタイプのディクショナリ/リストを使用する必要がありますか?

だから、ここに私が保存しているものがあります:

Result #1 (int) > Name > Value
                > Title > Value
                > Message > Value
                > Date > Value
                > Email > Value

Result #2 (int) > Name > Value
                > Title > Value
                > Message > Value
                > Date > Value
                > Email > Value

Result #3 (int) > Name > Value
                > Title > Value
                > Message > Value
                > Date > Value
                > Email > Value

Result #4 (int) > Name > Value
                > Title > Value
                > Message > Value
                > Date > Value
                > Email > Value

... 等々。私の主な懸念は、ほとんどの辞書とリスト、および並べ替え/リンクされたリストが重複するキーまたは値を持つことができないことです。各結果には名前、タイトル、メッセージなどのすべて同じキー名があるため、これには使用できません。値は異なる場合がありますが、名前や日付などの値の多くは重複します。 . そのため、キー/名前の重複を許可するディクショナリ/リストのどの種類を選択すればよいかわからず、これらの結果を適切に保存できるように、「1対多」の関係を取得する方法がわからないことにちょっとこだわっています。

誰かがこれを行うための最良の方法を教えてくれませんか?

4

4 に答える 4

2

各結果のキーは同じように見えます。これは、それらを別のクラスにカプセル化する必要があることを示唆しています (たとえば、「MailMessage」またはこれが意味するものは何でも)。次に、キーが実際にゼロまたは最小値として 1 であり、結果ごとに 1 ずつ増加する場合は、それらの結果Dictionary<int, MailMessage>リストを取得するだけです。

次に、適切なエラー チェック (たとえば、不明なプロパティ名、同じメッセージの繰り返しプロパティなど) を使用して、受信したデータベースの結果からそのコレクションを組み立てるためのコードを作成する必要がある可能性があります。

もちろん、それはあなたが私たちに与えてくれたデータが本当に代表的なものであると仮定しています.

于 2012-05-21T13:49:03.000 に答える
2

このようなクラスを作成する必要があるだけではありませんか?

public class Result
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Title{ get; set; }
    public string Message { get; set; }
    public DateTime Date { get; set; }
    public string Email { get; set; }
}

IList<Result>次に、DB の結果を、またはIDictionary<int, Result>Id プロパティをキーオフしたものにマップしますか?

于 2012-05-21T13:49:07.030 に答える
0

オブジェクトを格納するクラスを (Entity Framework などのツールを使用して、または手動で) 生成するだけでよいようです。

その後、オブジェクトのコレクションを簡単に維持できます。

リポジトリ パターンを使用して、Google で検索することもできます。

于 2012-05-21T13:50:04.590 に答える
0

構造体を作成し (値のみを保存するため、メソッドは必要ないため)、それらを Generic List に保存します。

サンプルコード:

List list = new List();

list.Add(new MyStruct(10));
list.Add(new MyStruct(20));
于 2012-05-21T13:51:10.433 に答える