在c#中使用字符串数据类型列表创建元组

Pra*_*iya 5 c# tuples list

我需要从字符串中的数据类型列表创建元组,但没有得到任何解决方案。

这是我想要做的示例。

string[] dataType = {"int", "float", "datetime"};

//I want to create list like this but dynamically datatype come from db.
//List<Tuple<int, string, string>> list = new List<Tuple<int, string, string>>(); 

List<Tuple<dataType[0],dataType[1], dataType[2]>> list = new List<Tuple<dataType[0],dataType[1], dataType[2]>>();
//Here datatype value is in string so I want to convert string to actual datatype.
Run Code Online (Sandbox Code Playgroud)

或者,如果对此有任何替代解决方案,请指导我。

4nd*_*ndy -1

您可以dynamic在此处使用您的类型。例如,当您从数据库中读取三个值时,您可以分配它们而不必担心类型,如下所示:

dynamic a = 10;
dynamic b = "Some String";
dynamic c = new DateTime(2020,4,9);

var test = new System.Tuple<dynamic,dynamic,dynamic>(a, b, c);
Run Code Online (Sandbox Code Playgroud)

这取决于您稍后想要如何处理这些值。

要创建这些元组的列表,请使用:

var list = new List<System.Tuple<dynamic,dynamic,dynamic>>();
Run Code Online (Sandbox Code Playgroud)

您可以获取变量的类型,a例如

a.GetType().ToString();
Run Code Online (Sandbox Code Playgroud)

不过,我不确定您是否可以根据字符串值设置变量类型(问题的第二部分)。