C# 集合分組,將一個集合分若干組


static void Main(string[] args)
        {
            List<int> vs = new List<int>();
            for (int i = 0; i < 101; i++)
            {
                vs.Add(i);
            }
            //分成3組
            SpliteSourceByCount(vs, 3);
            //根據頁面大小分組 20
            SpliteSourceBySize(vs,20);
        }

       

 

 /// <summary>
        /// 將集合若干組
        /// </summary>
        /// <param name="source">數據集</param>
        /// <param name="pageSiez">每一組大小</param>
        private static List<List<int>> SpliteSourceBySize(List<int> source, int pageSiez)
        {
            int listCount = (source.Count() - 1) / pageSiez + 1;

            // 計算組數 
            List<List<int>> pages = new List<List<int>>();
            for (int pageIndex = 1; pageIndex <= listCount; pageIndex++)
            {
                var page = source.Skip((pageIndex - 1) * pageSiez).Take(pageSiez).ToList(); pages.Add(page);
            }
            return pages;
        }

        /// <summary> /// 將集合若干組
        /// /// </summary> ///
        /// <param name="source">數據集</param> 
        /// /// <param name="count">組數</param> 
        private static List<List<int>> SpliteSourceByCount(List<int> source, int count)
        {
            int pageSiez = source.Count() / count;//取每一頁大小 
            int remainder = source.Count() % count;//取余數 
            List<List<int>> pages = new List<List<int>>();
            for (int pageIndex = 1; pageIndex <= count; pageIndex++)
            {
                if (pageIndex != count)
                {
                    var page = source.Skip((pageIndex - 1) * pageSiez).Take(pageSiez).ToList(); pages.Add(page);
                }
                else
                {
                    var page = source.Skip((pageIndex - 1) * pageSiez).Take(pageSiez + remainder).ToList(); pages.Add(page);
                }
            }
            return pages;
        }

 


免責聲明!

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



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