Devcorner.NIdenticon.IdenticonGenerator.GetBlockGenerator C# (CSharp) Méthode

GetBlockGenerator() private méthode

private GetBlockGenerator ( IBlockGenerator generators, byte seed ) : IBlockGenerator
generators IBlockGenerator
seed byte
Résultat IBlockGenerator
        private IBlockGenerator GetBlockGenerator(IBlockGenerator[] generators, byte seed)
        {
            var totalweight = generators.Sum(w => w.Weight);
            var f = ((double)totalweight / 256);
            //Determine which generator to use
            var r = seed * f;   //Determine "random" number from hash from 0 .. totalweight
            int g = -1;
            while (r >= 0)
                r -= generators[++g].Weight;
            return generators[g];
        }