public void TryParseIntArray()
        {
            const string successValue1 = "10";
            const string successValue2 = "20";
            var errorValue1 = double.MaxValue.ToString(CultureInfo.InvariantCulture);
            var errorValue2 = double.MinValue.ToString(CultureInfo.InvariantCulture);

            var successByteValues = new[] { successValue1.TryParseInt(), successValue2.TryParseInt() };
            var successValues = new[] { successValue1, successValue2 };
            var errorValues = new[] { errorValue1, errorValue2 };
            var mixedValues = new[] { successValue1, successValue2, errorValue1, errorValue2 };

            #region full method (with number format), without default, dont return defult conversion
            var successConversion = string.Join(",", successValues).TryParseIntArray(null, false,
                BasePrimitivesExtensions.GetDefaultIntNumberStyle(),
                BasePrimitivesExtensions.GetCurrentCulture());
            Assert.IsNotNull(successConversion, "Error converting string to int array");
            Assert.IsTrue(successConversion.Any(), "Error converting string to int array");
            Assert.IsFalse(successConversion.Any(a => !successByteValues.Contains(a)), "Error converting string to int array");
            Assert.IsTrue(successConversion.Count() == successByteValues.Count(), "Error converting string to int array");

            var falseConversions = string.Join(",", errorValues).TryParseIntArray(null, false,
                BasePrimitivesExtensions.GetDefaultIntNumberStyle(),
                BasePrimitivesExtensions.GetCurrentCulture());
            Assert.IsNotNull(falseConversions, "Error converting string to int array");
            Assert.IsFalse(falseConversions.Any(), "Error converting string to int array");

            var mixedConversions = string.Join(",", mixedValues).TryParseIntArray(null, false,
                BasePrimitivesExtensions.GetDefaultIntNumberStyle(),
                BasePrimitivesExtensions.GetCurrentCulture());
            Assert.IsNotNull(mixedConversions, "Error converting string to int array");
            Assert.IsFalse(mixedConversions.Any(a => !successByteValues.Contains(a)), "Error converting string to int array");
            Assert.IsTrue(mixedConversions.Count() == successByteValues.Count(), "Error converting string to int array");
            #endregion

            #region partial method (with number format), without default
            successConversion = string.Join(",", successValues).TryParseIntArray(null,
                BasePrimitivesExtensions.GetDefaultIntNumberStyle(),
                BasePrimitivesExtensions.GetCurrentCulture());
            Assert.IsNotNull(successConversion, "Error converting string to int array");
            Assert.IsTrue(successConversion.Any(), "Error converting string to int array");
            Assert.IsFalse(successConversion.Any(a => !successByteValues.Contains(a)), "Error converting string to int array");
            Assert.IsTrue(successConversion.Count() == successByteValues.Count(), "Error converting string to int array");

            falseConversions = string.Join(",", errorValues).TryParseIntArray(null,
                BasePrimitivesExtensions.GetDefaultIntNumberStyle(),
                BasePrimitivesExtensions.GetCurrentCulture());
            Assert.IsNotNull(falseConversions, "Error converting string to int array");
            Assert.IsFalse(falseConversions.Any(), "Error converting string to int array");

            mixedConversions = string.Join(",", mixedValues).TryParseIntArray(null,
                BasePrimitivesExtensions.GetDefaultIntNumberStyle(),
                BasePrimitivesExtensions.GetCurrentCulture());
            Assert.IsNotNull(mixedConversions, "Error converting string to int array");
            Assert.IsFalse(mixedConversions.Any(a => !successByteValues.Contains(a)), "Error converting string to int array");
            Assert.IsTrue(mixedConversions.Count() == successByteValues.Count(), "Error converting string to int array");
            #endregion

            #region simple method (with number format)
            successConversion = string.Join(",", successValues).TryParseIntArray(
                BasePrimitivesExtensions.GetDefaultIntNumberStyle(),
                BasePrimitivesExtensions.GetCurrentCulture());
            Assert.IsNotNull(successConversion, "Error converting string to int array");
            Assert.IsTrue(successConversion.Any(), "Error converting string to int array");
            Assert.IsFalse(successConversion.Any(a => !successByteValues.Contains(a)), "Error converting string to int array");
            Assert.IsTrue(successConversion.Count() == successByteValues.Count(), "Error converting string to int array");

            falseConversions = string.Join(",", errorValues).TryParseIntArray(
                BasePrimitivesExtensions.GetDefaultIntNumberStyle(),
                BasePrimitivesExtensions.GetCurrentCulture());
            Assert.IsNotNull(falseConversions, "Error converting string to int array");
            Assert.IsFalse(falseConversions.Any(), "Error converting string to int array");

            mixedConversions = string.Join(",", mixedValues).TryParseIntArray(
                BasePrimitivesExtensions.GetDefaultIntNumberStyle(),
                BasePrimitivesExtensions.GetCurrentCulture());
            Assert.IsNotNull(mixedConversions, "Error converting string to int array");
            Assert.IsFalse(mixedConversions.Any(a => !successByteValues.Contains(a)), "Error converting string to int array");
            Assert.IsTrue(mixedConversions.Count() == successByteValues.Count(), "Error converting string to int array");
            #endregion

            #region full method (without number format), without default, dont return defult conversion
            successConversion = string.Join(",", successValues).TryParseIntArray(null, false);
            Assert.IsNotNull(successConversion, "Error converting string to int array");
            Assert.IsTrue(successConversion.Any(), "Error converting string to int array");
            Assert.IsFalse(successConversion.Any(a => !successByteValues.Contains(a)), "Error converting string to int array");
            Assert.IsTrue(successConversion.Count() == successByteValues.Count(), "Error converting string to int array");

            falseConversions = string.Join(",", errorValues).TryParseIntArray(null, false);
            Assert.IsNotNull(falseConversions, "Error converting string to int array");
            Assert.IsFalse(falseConversions.Any(), "Error converting string to int array");

            mixedConversions = string.Join(",", mixedValues).TryParseIntArray(null, false);
            Assert.IsNotNull(mixedConversions, "Error converting string to int array");
            Assert.IsFalse(mixedConversions.Any(a => !successByteValues.Contains(a)), "Error converting string to int array");
            Assert.IsTrue(mixedConversions.Count() == successByteValues.Count(), "Error converting string to int array");
            #endregion

            #region partial method (without number format), without default
            successConversion = string.Join(",", successValues).TryParseIntArray(null);
            Assert.IsNotNull(successConversion, "Error converting string to int array");
            Assert.IsTrue(successConversion.Any(), "Error converting string to int array");
            Assert.IsFalse(successConversion.Any(a => !successByteValues.Contains(a)), "Error converting string to int array");
            Assert.IsTrue(successConversion.Count() == successByteValues.Count(), "Error converting string to int array");

            falseConversions = string.Join(",", errorValues).TryParseIntArray(null);
            Assert.IsNotNull(falseConversions, "Error converting string to int array");
            Assert.IsFalse(falseConversions.Any(), "Error converting string to int array");

            mixedConversions = string.Join(",", mixedValues).TryParseIntArray(null);
            Assert.IsNotNull(mixedConversions, "Error converting string to int array");
            Assert.IsFalse(mixedConversions.Any(a => !successByteValues.Contains(a)), "Error converting string to int array");
            Assert.IsTrue(mixedConversions.Count() == successByteValues.Count(), "Error converting string to int array");
            #endregion

            #region simple method (without number format)
            successConversion = string.Join(",", successValues).TryParseIntArray();
            Assert.IsNotNull(successConversion, "Error converting string to int array");
            Assert.IsTrue(successConversion.Any(), "Error converting string to int array");
            Assert.IsFalse(successConversion.Any(a => !successByteValues.Contains(a)), "Error converting string to int array");
            Assert.IsTrue(successConversion.Count() == successByteValues.Count(), "Error converting string to int array");

            falseConversions = string.Join(",", errorValues).TryParseIntArray();
            Assert.IsNotNull(falseConversions, "Error converting string to int array");
            Assert.IsFalse(falseConversions.Any(), "Error converting string to int array");

            mixedConversions = string.Join(",", mixedValues).TryParseIntArray();
            Assert.IsNotNull(mixedConversions, "Error converting string to int array");
            Assert.IsFalse(mixedConversions.Any(a => !successByteValues.Contains(a)), "Error converting string to int array");
            Assert.IsTrue(mixedConversions.Count() == successByteValues.Count(), "Error converting string to int array");
            #endregion
        }