clojure.lang.GenClass.ComputeOverloads C# (CSharp) Метод

ComputeOverloads() статический приватный Метод

static private ComputeOverloads ( List sigs ) : List>.Dictionary
sigs List
Результат List>.Dictionary
        static Dictionary<string, List<MethodSignature>> ComputeOverloads(List<MethodSignature> sigs)
        {
            //HashSet<String> overloadNames = new HashSet<string>();
            Dictionary<string,List<MethodSignature>> name2SigMap = new Dictionary<string,List<MethodSignature>>();

            foreach (MethodSignature sig in sigs)
            {
                if (!name2SigMap.ContainsKey(sig.Name))
                    name2SigMap.Add(sig.Name, new List<MethodSignature>());
                name2SigMap[sig.Name].Add(sig);
            }

            List<String> okKeys = new List<string>();
            foreach (KeyValuePair<string, List<MethodSignature>> kv in name2SigMap)
                if (kv.Value.Count <= 1)
                    okKeys.Add(kv.Key);

            foreach (string okKey in okKeys)
                name2SigMap.Remove(okKey);

            return name2SigMap;
        }