クラスのインスタンスであるオブジェクトのリストがあります。それらを表示用にフォーマットしたいのですが、表示をフォーマットするコードを再利用可能にしたいのです。そのため、.aspx ページで、データを Excel にエクスポートするときに使用できます。
クラスのすべてのフィールドがフォーマットされた匿名クラス オブジェクトを返す関数の作成から始めました。
public Object GetForDisplay()
{
return new
{
RecordNum,
ID,
Value = Value.HasValue? Value.Value.ToString("0.##"): "-",
...
};
}
しかし、これにより、プロパティにわずかな変更が必要なときにプロパティにアクセスできませんでした。
私の次の試みは、すべてのフィールドを含む a を返すことでしたDictionary<String,Object>
(文字列はフィールド名です)。
public Dictionary<String, Object> GetForDisplay()
{
return new Dictionary<String, Object>
{
{"RecordNum", RecordNum},
{ "ID", ID },
{ "Value ", Value.HasValue? Value.Value.ToString("0.##"): "-"},
}
}
これを行うより良い方法があるかどうか疑問に思っていましたか?フォーマットされたデータを保持するためだけに新しいクラスを作成しますか?