可以说我有以下代码行:
callBacksToSend.Send(vaProxy, "a1", "b1");
callBacksToSend.Send(vaProxy, "a2", "b2", c2);
callBacksToSend.Send(vaProxy, "a3", "b3");
callBacksToSend.Send(vaProxy, "a4", "b4");
.
.
.
callBacksToSend.Send(vaProxy, "an", "bn", cn);
如何将以上所有内容存储在LIST或数组或Dictionary中,并循环运行? 我需要这样做是因为我想在执行每个命令后进行检查。
答案 0 :(得分:4)
您可以使用lambda表达式执行类似的操作
var actions = new List<Action>() {
() => foo.Send(vaProxy, "a1", "b1"),
() => foo.Send(vaProxy, "a2", "b2", c2)
//....
};
foreach (var a in actions) {
a();
Console.WriteLine("did an action!");
}
答案 1 :(得分:1)
建议不要使用自变量的列表,而不要使用代表的列表
var args = new[] { new[] { "a1", "b1" }, new[] { "a2, "b2" }, ... };
foreach(var arg in args)
callbacks.Send(vaProxy, arg[0], arg[1]);
如果args
可能有所不同,您还可以为其提取一些类:
class Arg
{
string Item1;
string Item2;
int Item3;
...
}
现在创建一个列表并循环它们:
var args = new[] { new Arg { ... }, new Arg { ... }, ...};
foreach(var arg in args)
callbacks.Send(vaProxy, arg);