日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

C#對(duì)DataTable中的某列進(jìn)行分組_C#教程

作者:.NET開(kāi)發(fā)菜鳥(niǎo) ? 更新時(shí)間: 2022-05-21 編程語(yǔ)言

有時(shí)候我們從數(shù)據(jù)庫(kù)中查詢(xún)出來(lái)數(shù)據(jù)之后,需要按照DataTable的某列進(jìn)行分組,可以使用下面的方法實(shí)現(xiàn),代碼如下:

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DataTableGroupDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // 準(zhǔn)備數(shù)據(jù)
            DataTable dt = new DataTable();
            // 創(chuàng)建列
            DataColumn dcName = new DataColumn("Name", typeof(string));
            DataColumn dcAge = new DataColumn("Age", typeof(Int32));
            DataColumn dcScore = new DataColumn("Score", typeof(Int32));
            // 添加列
            dt.Columns.Add(dcName);
            dt.Columns.Add(dcAge);
            dt.Columns.Add(dcScore);
            // 添加數(shù)據(jù)
            dt.Rows.Add(new object[] { "Tom", 23, 67 });
            dt.Rows.Add(new object[] { "Tom", 23, 67 });
            dt.Rows.Add(new object[] { "Jack", 21, 100 });
            dt.Rows.Add(new object[] { "Greey", 24, 56 });
            dt.Rows.Add(new object[] { "Kevin", 24, 77 });
            dt.Rows.Add(new object[] { "Tom", 23, 82 });
            dt.Rows.Add(new object[] { "Greey", 24, 80 });
            dt.Rows.Add(new object[] { "Jack", 21, 90 });


            #region 使用Linq expression to DataTable group by
            var query = from p in dt.AsEnumerable()
                        group p by new { name = p.Field("Name"),score=p.Field("Score") } into m
                        select new
                        {
                            Name = m.Key.name,
                            Score=m.Key.score
                        };
            #endregion

            // 輸出
            Console.WriteLine("Linq");
            foreach (var item in query)
            {
                Console.WriteLine(item);
            }

            Console.WriteLine("GroupBy");
            IEnumerable> result = dt.Rows.Cast().GroupBy(dr => dr["Name"].ToString());
            foreach (IGrouping ig in result)
            {
                Console.WriteLine("key=" + ig.Key + ":");
                foreach (DataRow dr in ig)
                {                   
                    Console.WriteLine(dr["Name"].ToString().PadRight(10) + dr["Age"].ToString().PadRight(10) + dr["Score"].ToString().PadRight(10));
                }
                    

            }

            Console.ReadKey();
        }
    }
}

程序運(yùn)行效果

原文鏈接:https://www.cnblogs.com/dotnet261010/p/11495884.html

欄目分類(lèi)
最近更新