任意のキーと値のタイプで辞書を受け取る関数を作成し、それらをcsvファイルに書き込みたいと思います。たとえば、次のクラスがある場合:
public class VerificationResult
{
public enum resInfo
{
sessionID,
testFilePath,
testFileName,
ID1,
ID2,
score1,
score2,
isGood,
isTrue
};
public string[] resData =
new string[Enum.GetNames(typeof (resInfo)).Length];
public VerificationResult(int sessionID,
string testFilePath,
string Id1,
string Id2,
string score1,
string score2,
string isGood)
{
resData[(int) resInfo.sessionID] = sessionID.ToString();
resData[(int) resInfo.testFilePath] = testFilePath;
resData[(int) resInfo.testFileName] =
Path.GetFileNameWithoutExtension(testFilePath);
resData[(int) resInfo.ID1] = Id1;
resData[(int) resInfo.ID2] = Id2;
resData[(int) resInfo.score1] = Score1;
resData[(int) resInfo.score2] = Score2;
resData[(int) resInfo.isGood] = isGood;
resData[(int) resInfo.isTrue] = (Id1 == IsGood).ToString();
}
};
および次のように定義された辞書:
private Dictionary<int,VerificationResult> verificationResults
値のメンバー(この場合はVerificationResultクラスのメンバー)のヘッダーを使用して、このディクショナリをcsvファイルに出力できるジェネリック関数を作成したいと思います。
引数として、値型のメンバーの配列または列挙型を送信することにしました。問題は、必要なデータの配列を保持する値クラスメンバーの名前、または(別の方法で実装する場合は)不明な値クラスメンバーを反復処理してファイルに出力する方法がわからないことです。evalのような関数を使用せずにそれを行う方法はありますか?私は多くのことをしようとしていますか?必要になるたびに特定の関数を記述して、そのままにしておく必要がありますか?