AssemblyCSharp.RecipeEvaluator.InitializePermutations C# (CSharp) Метод

InitializePermutations() приватный Метод

private InitializePermutations ( List groups ) : List>
groups List
Результат List>
        List<List<WeightedGroupItem>> InitializePermutations(List<WeightedValue> groups)
        {
            PSDebug.Log ("Initialize permutations: {0}", groups.ToDebugString ());
            var templates = new List<List<WeightedGroupItem>> ();
            var numPerms = 1;
            var digits = new int[groups.Count];
            for (int i = 0; i < groups.Count; i++) {
                var item = groups [i];
                var supplements = _supplements (item);
                supplements.ForEach (spm => spm.Weight *= item.Weight);
                numPerms *= digits [i] = supplements.Count;

                templates.Add (supplements);
            }

            var idx = new GenericNumber (digits);
            var perms = new List<List<WeightedGroupItem>> (numPerms);
            for (var i = 0; i < numPerms; ++i) {
                var row = new List<WeightedGroupItem> ();
                perms.Add (row);

                for (var digit = 0; digit < idx.Value.Length; ++digit) {
                    row.Add (templates [digit] [idx.Value [digit]]);
                }

                idx.Incr ();
            }

            return perms;
        }