我想创建一个返回表的接口类型列表的通用方法。
例如return List<ITableInterface>

我的桌子是
public class Table1 : ITableInterface
public class Table2 : ITableInterface

我想到制作这样的字典

Dictionary<string, ITableInterface> = new Dictionary<string, ITableInterface>
{
  { "Table1", Table1 },
  { "Table2", Table2 }
};


然后,使用dapper,获得返回的每个表的所有记录。

var tl = con.Query<T>("select * from " + tbl).ToList();


我的任何表都应使用<T>。我只是传递字符串。
我知道上面的代码行不通,但是我无法理解。

最佳答案

Dictionary<string, ITableInterface> dict = new Dictionary<string, ITableInterface>
{
  { "Table1", new Table1() as ITableInterface },
  { "Table2", new Table2() as ITableInterface }
};

foreach (var key in dict.Keys)
{
     var table = dict.GetValueOrDefault(key);
     table?.  // do something (question mark is there for null protection)
}

// if you just want a list of all your tables this is it
var listOfTables = dict.Keys.Select(_ => dict.GetValueOrDefault(_)).ToList();

10-04 22:28