diff --git a/Apewer/NumberUtility.cs b/Apewer/NumberUtility.cs
index 03b3faa..f74cf6a 100644
--- a/Apewer/NumberUtility.cs
+++ b/Apewer/NumberUtility.cs
@@ -187,38 +187,155 @@ namespace Apewer
 
         #endregion
 
-        #region 平均值
+        #region 求和
 
-        /// 平均值。
-        public static float Average(params float[] values)
+        /// 求和。
+        public static int Sum(params byte[] values)
         {
-            if (values == null) return 0F;
+            if (values == null) return 0;
 
-            var amount = 0F;
-            foreach (var i in values) amount += i;
-            return amount / values.Length;
+            var result = 0;
+            foreach (var i in values) result += i;
+            return result;
         }
 
-        /// 平均值。
-        public static double Average(params double[] values)
+        /// 求和。
+        public static int Sum(params short[] values)
         {
-            if (values == null) return 0D;
+            if (values == null) return 0;
 
-            var amount = 0D;
-            foreach (var i in values) amount += i;
-            return amount / Convert.ToDouble(values.Length);
+            var result = 0;
+            foreach (var i in values) result += i;
+            return result;
         }
 
-        /// 平均值。
-        public static decimal Average(params decimal[] values)
+        /// 求和。
+        public static int Sum(params int[] values)
         {
-            if (values == null) return 0M;
+            if (values == null) return 0;
 
-            var amount = 0M;
-            foreach (var i in values) amount += i;
-            return amount / Convert.ToDecimal(values.Length);
+            var result = 0;
+            foreach (var i in values) result += i;
+            return result;
         }
 
+        /// 求和。
+        public static long Sum(params long[] values)
+        {
+            if (values == null) return 0;
+
+            var result = 0L;
+            foreach (var i in values) result += i;
+            return result;
+        }
+
+        /// 求和。
+        public static int Sum(params sbyte[] values)
+        {
+            if (values == null) return 0;
+
+            var result = 0;
+            foreach (var i in values) result += i;
+            return result;
+        }
+
+        /// 求和。
+        public static int Sum(params ushort[] values)
+        {
+            if (values == null) return 0;
+
+            var result = 0;
+            foreach (var i in values) result += i;
+            return result;
+        }
+
+        /// 求和。
+        public static uint Sum(params uint[] values)
+        {
+            if (values == null) return 0;
+
+            var result = 0U;
+            foreach (var i in values) result += i;
+            return result;
+        }
+
+        /// 求和。
+        public static ulong Sum(params ulong[] values)
+        {
+            if (values == null) return 0;
+
+            var result = 0UL;
+            foreach (var i in values) result += i;
+            return result;
+        }
+
+        /// 求和。
+        public static float Sum(params float[] values)
+        {
+            if (values == null) return 0;
+
+            var result = 0F;
+            foreach (var i in values) result += i;
+            return result;
+        }
+
+        /// 求和。
+        public static double Sum(params double[] values)
+        {
+            if (values == null) return 0;
+
+            var result = 0D;
+            foreach (var i in values) result += i;
+            return result;
+        }
+
+        /// 求和。
+        public static decimal Sum(params decimal[] values)
+        {
+            if (values == null) return 0;
+
+            var result = 0M;
+            foreach (var i in values) result += i;
+            return result;
+        }
+
+        #endregion
+
+        #region 平均值
+
+        /// 平均值。
+        public static double Average(params byte[] values) => values.IsEmpty() ? 0 : (Sum(values) / Convert.ToDouble(values.Length));
+
+        /// 平均值。
+        public static double Average(params short[] values) => values.IsEmpty() ? 0 : (Sum(values) / Convert.ToDouble(values.Length));
+
+        /// 平均值。
+        public static double Average(params int[] values) => values.IsEmpty() ? 0 : (Sum(values) / Convert.ToDouble(values.Length));
+
+        /// 平均值。
+        public static double Average(params long[] values) => values.IsEmpty() ? 0 : (Sum(values) / Convert.ToDouble(values.Length));
+
+        /// 平均值。
+        public static double Average(params sbyte[] values) => values.IsEmpty() ? 0 : (Sum(values) / Convert.ToDouble(values.Length));
+
+        /// 平均值。
+        public static double Average(params ushort[] values) => values.IsEmpty() ? 0 : (Sum(values) / Convert.ToDouble(values.Length));
+
+        /// 平均值。
+        public static double Average(params uint[] values) => values.IsEmpty() ? 0 : (Sum(values) / Convert.ToDouble(values.Length));
+
+        /// 平均值。
+        public static double Average(params ulong[] values) => values.IsEmpty() ? 0 : (Sum(values) / Convert.ToDouble(values.Length));
+
+        /// 平均值。
+        public static float Average(params float[] values) => values.IsEmpty() ? 0 : (Sum(values) / values.Length);
+
+        /// 平均值。
+        public static double Average(params double[] values) => values.IsEmpty() ? 0 : (Sum(values) / values.Length);
+
+        /// 平均值。
+        public static decimal Average(params decimal[] values) => values.IsEmpty() ? 0 : (Sum(values) / values.Length);
+
         #endregion
 
         #region 标准差
@@ -432,7 +549,7 @@ namespace Apewer
 
         #endregion
 
-        #region 最小值、最大值、极差
+        #region 最小值
 
         private static T Most(Func replace, T[] values)
         {
@@ -463,12 +580,27 @@ namespace Apewer
         /// 最小值。
         public static byte Min(params byte[] values) => Most((a, b) => a > b, values);
 
+        /// 最小值。
+        public static short Min(params short[] values) => Most((a, b) => a > b, values);
+
         /// 最小值。
         public static int Min(params int[] values) => Most((a, b) => a > b, values);
 
         /// 最小值。
         public static long Min(params long[] values) => Most((a, b) => a > b, values);
 
+        /// 最小值。
+        public static sbyte Min(params sbyte[] values) => Most((a, b) => a > b, values);
+
+        /// 最小值。
+        public static ushort Min(params ushort[] values) => Most((a, b) => a > b, values);
+
+        /// 最小值。
+        public static uint Min(params uint[] values) => Most((a, b) => a > b, values);
+
+        /// 最小值。
+        public static ulong Min(params ulong[] values) => Most((a, b) => a > b, values);
+
         /// 最小值。
         public static float Min(params float[] values) => Most((a, b) => a > b, values);
 
@@ -478,15 +610,34 @@ namespace Apewer
         /// 最小值。
         public static decimal Min(params decimal[] values) => Most((a, b) => a > b, values);
 
+        #endregion
+
+        #region 最大值
+
         /// 最大值。
         public static byte Max(params byte[] values) => Most((a, b) => a < b, values);
 
+        /// 最大值。
+        public static short Max(params short[] values) => Most((a, b) => a < b, values);
+
         /// 最大值。
         public static int Max(params int[] values) => Most((a, b) => a < b, values);
 
         /// 最大值。
         public static long Max(params long[] values) => Most((a, b) => a < b, values);
 
+        /// 最大值。
+        public static sbyte Max(params sbyte[] values) => Most((a, b) => a < b, values);
+
+        /// 最大值。
+        public static ushort Max(params ushort[] values) => Most((a, b) => a < b, values);
+
+        /// 最大值。
+        public static uint Max(params uint[] values) => Most((a, b) => a < b, values);
+
+        /// 最大值。
+        public static ulong Max(params ulong[] values) => Most((a, b) => a < b, values);
+
         /// 最大值。
         public static float Max(params float[] values) => Most((a, b) => a < b, values);
 
@@ -496,6 +647,10 @@ namespace Apewer
         /// 最大值。
         public static decimal Max(params decimal[] values) => Most((a, b) => a < b, values);
 
+        #endregion
+
+        #region 极差
+
         /// 极差。
         public static int Range(params int[] values) => Max(values) - Min(values);
 
@@ -513,14 +668,10 @@ namespace Apewer
 
         #endregion
 
+        #region 相关性
+
         /// Pearson Correlation Coefficient 皮尔逊相关系数。计算两个数组的相似度。数组长度不相等时,以 0 填充不足的长度。
-        /// 
-        /// 0.8 ~ 1.0 : 极强相关
-        /// 0.6 ~ 0.8 : 强相关
-        /// 0.4 ~ 0.6 : 中等程度相关
-        /// 0.2 ~ 0.4 : 弱相关
-        /// 0.0 ~ 0.2 : 极弱相关或无相关
-        /// 
+        /// 0.8 ~ 1.0 : 极强相关
0.6 ~ 0.8 : 强相关
0.4 ~ 0.6 : 中等程度相关
0.2 ~ 0.4 : 弱相关
0.0 ~ 0.2 : 极弱相关或无相关
         /// 
         public static double Pearson(double[] bytes1, double[] bytes2)
         {
@@ -554,6 +705,8 @@ namespace Apewer
             return r;
         }
 
+        #endregion
+
         #region 从 String 转为数值。
 
         // 修剪数值字符串。