コード例 #1
0
        /// <summary>
        /// 自定义IEnumerable~T的ToString方法
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="source">源</param>
        /// <param name="func">如果源是string类型func可以为null</param>
        /// <returns></returns>
        public static string ToString <T>(this IEnumerable <T> source, Func <T, string> func)
            where T : class
        {
            SqlServerUtilities.CheckNotEmpty(source, "source");
            string str1 = string.Empty;
            string temp = string.Empty;

            foreach (var t in source)
            {
                temp = (func == null ? (t as string) : func(t));
                if (!string.IsNullOrEmpty(temp))
                {
                    str1 += temp + ",";
                }
            }
            temp = null;
            return(str1.TrimEnd(','));
        }
コード例 #2
0
        /// <summary>
        /// 将两个集合组合在一起,两个集合的长度必须相等
        /// </summary>
        /// <typeparam name="T1"></typeparam>
        /// <typeparam name="T2"></typeparam>
        /// <typeparam name="TResult"></typeparam>
        /// <param name="list1">集合1</param>
        /// <param name="list2">集合2</param>
        /// <param name="func">组合的方法</param>
        /// <returns></returns>
        public static IList <TResult> Combine <T1, T2, TResult>(this IList <T1> list1, IList <T2> list2, Func <T1, T2, TResult> func)
            where T1 : class where T2 : class where TResult : class
        {
            SqlServerUtilities.CheckNotEmpty(list1, "list1");
            SqlServerUtilities.CheckNotEmpty(list2, "list2");
            SqlServerUtilities.CheckNotEmpty(func, "func");
            if (list1.Count != list2.Count)
            {
                throw new ArgumentException("list1与list2的数量不相等");
            }
            if (list1.Count == 0)
            {
                return(null);
            }
            IList <TResult> result = new List <TResult>();

            for (int i = 0; i < list1.Count; i++)
            {
                result.Add(func(list1[i], list2[i]));
            }
            return(result);
        }
コード例 #3
0
        /// <summary>
        /// 获取主键的参数化Sql语句
        /// </summary>
        /// <param name="keys">主键列表</param>
        /// <param name="parms">如果主键有值,返回参数列表</param>
        /// <returns></returns>
        private string GetPrimaryKeysParameterizedSqlString(List <MapperPropertyInfo> keys, out DynamicParameters parms)
        {
            SqlServerUtilities.CheckNotEmpty(keys, "keys");
            parms = new DynamicParameters();
            string sql = string.Empty;

            for (int i = 0; i < keys.Count; i++)
            {
                if (i == (keys.Count - 1))
                {
                    sql += string.Format("{0}=@p{1} ", "[" + keys[i].Name + "]", i);
                }
                else
                {
                    sql += string.Format("{0}=@p{1} AND ", "[" + keys[i].Name + "]", i);
                }
                if (keys[i].Value != null)
                {
                    parms.Add("@p" + i.ToString(), keys[i].Value);
                }
            }
            return(sql);
        }