将通用列表传递给C#中的多参数方法

Kev*_*vin 1 c# asp.net generics list

处理一个程序,我需要将三条信息传递给一个方法,该方法将从传入的数据中为表创建一行.

变量是:

var runningTally = new Dictionary<string, Dictionary<string, int>>();
var comments = query.ToList();
var columns = query.ToList();
Run Code Online (Sandbox Code Playgroud)

我会这样调用这个方法:

tReport.Rows.Add(row);
foreach (var key in _masterList.Keys)
{
    CreateRow(key, runningTally, columns);
} 
Run Code Online (Sandbox Code Playgroud)

我希望我的方法签名看起来像这样:

private void CreateRow(string key, IDictionary<string, Dictionary<string, int>>
 runningTally, List<T> columns)
Run Code Online (Sandbox Code Playgroud)

但这不起作用(编辑抱怨无法找到类型'T').我希望有人能告诉我如何正确使用通用列表作为方法的参数.我感谢任何帮助和建议!

ros*_*dia 5

您需要将该方法标记为通用.

像这样:

private void CreateRow<T>(string key, IDictionary<string, Dictionary<string, int>>
 runningTally, List<T> columns)
Run Code Online (Sandbox Code Playgroud)

请注意,方法名称本身添加了通用参数.

  • @rossipedia实际上,通用争论根本不需要在参数中使用.它可能只是返回类型,甚至两者都没有.(虽然最后一个选项很不寻常,但偶尔也会这样做.) (3认同)