Hat jemand eine bessere Methode, dies zu tun? Scheint, wie es sollte einfacher sein als diese, aber ich habe eine geistige Blockade. Im Grunde muss ich Elemente aus einem Wörterbuch zu entfernen und rekursieren in die Werte der Elemente, die auch Wörterbücher sind.
private void RemoveNotPermittedItems(ActionDictionary menu)
{
var keysToRemove = new List<string>();
foreach (var item in menu)
{
if (!GetIsPermitted(item.Value.Call))
{
keysToRemove.Add(item.Key);
}
else if (item.Value is ActionDictionary)
{
RemoveNotPermittedItems((ActionDictionary)item.Value);
if (((ActionDictionary)item.Value).Count == 0)
{
keysToRemove.Add(item.Key);
}
}
}
foreach (var key in (from item in menu where keysToRemove.Contains(item.Key) select item.Key).ToArray())
{
menu.Remove(key);
}
}
Das Aktionswörterbuch sieht so aus:
public class ActionDictionary : Dictionary<string, IActionItem>, IActionItem
0 Stimmen
Was ist "glaubwürdig" und/oder "offiziell"?