我想编写一个函数来接收具有任意键和值类型的字典,并将它们写入 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
我想创建一个通用函数,该函数能够将此字典打印到 csv 文件,其中包含值成员的标题(在本例中为 VerificationResult 类的成员。
我决定将数组或值类型成员的枚举作为参数发送。问题是我不需要知道保存我需要的数据数组的值类成员的名称是什么,或者(如果我决定以不同的方式实现它)如何遍历未知的值类成员并将它们打印到文件中。有没有办法在不使用类似 eval 的函数的情况下做到这一点?我努力了吗?我是否应该在每次需要时只编写一个特定的函数并保持这样的状态?