Esempio n. 1
0
        public static UuidStringWithBytes[] GenerateNStrings()
        {
            var resultStrings = new List <string>();

            for (int stringsToCreate = 32, itemsToFill = 1;
                 stringsToCreate > 0;
                 stringsToCreate = stringsToCreate >> 1, itemsToFill = itemsToFill << 1)
            {
                for (var stringIndex = 0; stringIndex < stringsToCreate; stringIndex++)
                {
                    resultStrings.Add(
                        string.Create(
                            32,
                            (stringIndex * itemsToFill, itmesToFill: itemsToFill),
                            (result, state) =>
                    {
                        (int startPositionToFill, int itemsToFillCount) = state;
                        for (var j = 0; j < 32; j++)
                        {
                            result[j] = '0';
                        }

                        result[startPositionToFill] = '1';
                        for (var j = 0; j < itemsToFillCount; j++)
                        {
                            result[startPositionToFill + j] = '1';
                        }
                    }));
                }
            }

            for (int stringsToCreate = 32, itemsToFill = 1;
                 stringsToCreate > 0;
                 stringsToCreate = stringsToCreate >> 1, itemsToFill = itemsToFill << 1)
            {
                for (var stringIndex = 0; stringIndex < stringsToCreate; stringIndex++)
                {
                    resultStrings.Add(
                        string.Create(
                            32,
                            (stringIndex * itemsToFill, itmesToFill: itemsToFill),
                            (result, state) =>
                    {
                        (int startPositionToFill, int itemsToFillCount) = state;
                        for (var j = 0; j < 32; j++)
                        {
                            result[j] = '1';
                        }

                        result[startPositionToFill] = '1';
                        for (var j = 0; j < itemsToFillCount; j++)
                        {
                            result[startPositionToFill + j] = '0';
                        }
                    }));
                }
            }

            var nStrings = resultStrings.Distinct().ToArray();
            var output   = new UuidStringWithBytes[nStrings.Length];

            for (var i = 0; i < nStrings.Length; i++)
            {
                var bytes = ConvertHexStringToByteArray(nStrings[i]);
                output[i] = new UuidStringWithBytes(nStrings[i], bytes);
            }

            return(output);
        }
Esempio n. 2
0
        public static UuidStringWithBytes[] GenerateNStrings()
        {
            var resultStrings = new List <string>();

            for (int stringsToCreate = 32, itemsToFill = 1;
                 stringsToCreate > 0;
                 stringsToCreate = stringsToCreate >> 1, itemsToFill = itemsToFill << 1)
            {
                for (var stringIndex = 0; stringIndex < stringsToCreate; stringIndex++)
                {
#if NETCOREAPP || NET5_0 || NET6_0
                    resultStrings.Add(
                        string.Create(
                            32,
                            (stringIndex * itemsToFill, itmesToFill: itemsToFill),
                            (result, state) =>
                    {
                        (int startPositionToFill, int itemsToFillCount) = state;
                        for (var j = 0; j < 32; j++)
                        {
                            result[j] = '0';
                        }

                        result[startPositionToFill] = '1';
                        for (var j = 0; j < itemsToFillCount; j++)
                        {
                            result[startPositionToFill + j] = '1';
                        }
                    }));
#endif
#if NETFRAMEWORK
                    var result = new char[32];
                    int startPositionToFill = stringIndex * itemsToFill;
                    int itemsToFillCount    = itemsToFill;
                    for (var j = 0; j < 32; j++)
                    {
                        result[j] = '0';
                    }

                    result[startPositionToFill] = '1';
                    for (var j = 0; j < itemsToFillCount; j++)
                    {
                        result[startPositionToFill + j] = '1';
                    }

                    var resultStr = new string(result);
                    resultStrings.Add(resultStr);
#endif
                }
            }

            for (int stringsToCreate = 32, itemsToFill = 1;
                 stringsToCreate > 0;
                 stringsToCreate = stringsToCreate >> 1, itemsToFill = itemsToFill << 1)
            {
                for (var stringIndex = 0; stringIndex < stringsToCreate; stringIndex++)
                {
#if NETCOREAPP || NET5_0 || NET6_0
                    resultStrings.Add(
                        string.Create(
                            32,
                            (stringIndex * itemsToFill, itmesToFill: itemsToFill),
                            (result, state) =>
                    {
                        (int startPositionToFill, int itemsToFillCount) = state;
                        for (var j = 0; j < 32; j++)
                        {
                            result[j] = '1';
                        }

                        result[startPositionToFill] = '1';
                        for (var j = 0; j < itemsToFillCount; j++)
                        {
                            result[startPositionToFill + j] = '0';
                        }
                    }));
#endif
#if NETFRAMEWORK
                    var result = new char[32];
                    int startPositionToFill = stringIndex * itemsToFill;
                    int itemsToFillCount    = itemsToFill;
                    for (var j = 0; j < 32; j++)
                    {
                        result[j] = '1';
                    }

                    result[startPositionToFill] = '1';
                    for (var j = 0; j < itemsToFillCount; j++)
                    {
                        result[startPositionToFill + j] = '0';
                    }

                    var resultStr = new string(result);
                    resultStrings.Add(resultStr);
#endif
                }
            }

            string[] nStrings = resultStrings.Distinct().ToArray();
            var      output   = new UuidStringWithBytes[nStrings.Length];
            for (var i = 0; i < nStrings.Length; i++)
            {
                byte[] bytes = ConvertHexStringToByteArray(nStrings[i]);
                output[i] = new UuidStringWithBytes(nStrings[i], bytes);
            }

            return(output);
        }