假设我有一个sqlite数据库。该数据库有一个名为main的表,有5列(id,c1,c2,c3,c4)。
客户端调用executeQuery,如下所示:
public Dictionary<int, Tuple<string, string, string, string>> executeSql(string statement) {
var ret = new Dictionary<int, Tuple<string, string, string, string>>;
var dbcmd = conn.CreateCommand();
for(int i = 0; i < Entries; i++) {
dbcmd.CommandText = statement.Replace("i", i.ToString());
var reader = dbcmd.ExecuteReader();
//.... Evalulate query....
ret.Add(); //add to Dic
}
}
我不知道客户在他的陈述中要求多少列。是否有任何类型允许我在这种情况下正常工作。我想要的是这样的:
Dictionary<int, Tuple<params[] string>>
这将为我提供可变数量的字符串以添加到元组中。
如果没有类似的东西有任何干净的方法来解决这个问题而不是使用一个会有空条目的数组(因为它会破坏循环并且读取和保持非常糟糕)我也不想使用90%的相同代码仅适用于每个案例(也称为executeSqlOne(),executeSqlTwo()等...),因为它会严重破坏代码。
答案 0 :(得分:1)
在这种情况下,您可以使用Tuple<string, string, string, string>
而不是List<string>
,我相信您不必担心列数。只需将结果列添加到列表中并返回相同的内容即可。