如何使用反射从已编译的程序集随机生成短语/问题/值并另存为数据集

本文关键字:短语 问题 数据集 另存为 随机 反射 何使用 编译 程序集 | 更新日期: 2023-09-27 18:35:39

我有几个编译的dll文件,其中包含一个简单的类,并具有字符串数组,其中包含带有标记答案的问题和答案。


示例问题如下:

以下哪一个是符号C和原子序数为6的化学元素?选项:A) 煤 b) 碳 * c) 氯化物 d) 铬

每个

集合都有关于不同主题的多个题库,每个题库都有几个悬而未决的问题。


目的是从每个程序集中生成一个随机生成的问题,每个问题库的特定数量[例如每个问题库中每个程序集中的 25 个问题]。

请参阅下图以获得清晰的想法,并建议以相同方式提取问题的最佳方法。

必需 http://www.imagesup.net/dt-13138191632515.png

如何使用反射从已编译的程序集随机生成短语/问题/值并另存为数据集

我有一个解决方法。

我正在使用以下代码


public static T Extract<T>(params T[] array) // where params can be any string array
 { 
   int index = new Random().Next(0, array.Length); 
   return (T)array.GetValue(index); 
 }

public static string GetQuestion()
{
  return Extract<String>(new string[] { 
      "Question 1: What is the question 1 answer? (A) it's A (B) it's B * (C) it's C (D) it's D",
      "Question 2: What is the question 2 answer? (A) it's A * (B) it's B (C) it's C (D) it's D",
      "Question 3: What is the question 3 answer? (A) it's A (B) it's B (C) it's C (D) it's D * ",
      "Question 4: What is the question 4 answer? (A) it's A (B) it's B (C) it's C * (D) it's D",
  }));
}

使用反射调用此方法并不困难。