【发布时间】:2019-10-03 12:10:14
【问题描述】:
我有一个bool 和string 中的Dictinary,其中包含一个操作并希望以递归方式获取输出,如何实现这一点。
IDictionary<bool , string> lstIfResult = null;
假设这个列表包含:
{
{ true, "AND" },
{ false, "OR" },
{ true, "AND" }
}
我的代码是:
for (int i = 0; i < lstIfResult.Count(); i++)
{
bool res = getBinaryOprResult(lstIfResult.ElementAt(i) , lstIfResult.ElementAt(i + 1));
}
private static bool getBinaryOprResult(KeyValuePair<bool, string> firstIfResult,
KeyValuePair<bool, string> secondIfResult)
{
switch (firstIfResult.Value)
{
case "AND":
return firstIfResult.Key && secondIfResult.Key;
case "OR":
return firstIfResult.Key || secondIfResult.Key;
default:
return false;
}
}
如何递归此函数以使关键元素 1 等于 2,然后它们的结果等于第三个。 并且在 1 和 2 之间使用的操作是第一个,在它们的输出到第三个之间使用的操作是第二个。最后一个关键元素操作将被忽略。 提前致谢。
【问题讨论】: