c#擴展函數


分頁

 public static class IEnumerableExt
    {
        public static (IEnumerable<T> dataAfterPaging, Pageinfo pageinfo) Paging<T>(this IEnumerable<T> list, int PageIndex, int PageSize)
        {
            return
                (list.Skip(PageSize * (PageIndex - 1)).Take(PageSize), new Pageinfo()
                {
                    PageIndex = PageIndex,
                    PageSize = PageSize,
                    TotalRecords = list.Count(),
                    TotalPages = (list.Count() + PageSize - 1) / PageSize
                }
                );
        }
    }

對象的相同屬性賦值

public static class ObjectExt
    {
        // <summary>
        /// 給對象賦值的方法(不賦地址),含過濾
        /// </summary>
        /// <typeparam name="T"><peparam>
        /// <param name="left">=號左邊</param>
        /// <param name="right">=號右邊</param>
        /// <param name="id">過濾條件</param>
        public static void Assignment<T, V>(this Object value, T left, V right, string id = null)
        {
            Type rightType = right.GetType();
            Type leftType = left.GetType();
            List<PropertyInfo> pList = rightType.GetProperties(BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.Instance).ToList();
            for (int i = 0; i < pList.Count; i++)
            {
                //根據屬性名獲得指定的屬性對象
                PropertyInfo leftPropertyInfo = leftType.GetProperty(pList[i].Name);
                //設置屬性的值
                if (id != null)
                {
                    if (pList[i].Name != id)
                    {
                        leftPropertyInfo.SetValue(left, pList[i].GetValue(right, null), null);
                    }
                }
                else
                {
                    leftPropertyInfo.SetValue(left, pList[i].GetValue(right, null), null);
                }

            }
        }
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM