C# DataTable 通过Linq分组】的更多相关文章

datatable我们是经常使用到的,但是需要对数据进行分组,具体代码如下: var result = dt.AsEnumerable().GroupBy(f => new { type = f.Field<string>("type"), value = f.Field<string>("value"), site_id = f.Field<string>("site_id") }).Select(f…
DataRow drt = null; var tlist = dt.Select("Atmbs LIKE '%" + d["Two_Code"] + "%'").AsEnumerable().GroupBy(a => a.Field<string>("STATUS_MISSIONN")).Select(e => new { STATUS_MISSIONN = e.Key, Number = e.Cou…
实现功能:       多个字段分组源码样例: 原始数据: 分组后的输出结果: 源代码: public static void PrintPersons() { //准备数据 DataTable dt = new DataTable(); dt.Columns.Add(new DataColumn("ID", typeof(int))); dt.Columns.Add(new DataColumn("UserName", typeof(string))); dt.C…
LINQ to DataSet需要使用System.Core.dll.System.Data.dll和System.Data.DataSetExtensions.dll,在项目中添加引用System.Data和System.Data.DataSetExtensions. 1. DataTable读取列表 DataSet ds = new DataSet(); // 省略ds的Fill代码 DataTable products = ds.Tables["Product"]; IEnume…
//DataTable以列分组 var result = from r in dt.AsEnumerable() group r by ), b = r.Field<) } into g select new { key = g.Key, count = g.Count() }; var s = result.ToList();…
Linq在集合操作上很方便,很多语法都借鉴自sql,但linq的分组却与sql有一定的区别,故整理发布如下. 1.  Linq分组 分组后以Key属性访问分组键值. 每一组为一个IEnumberAble或IQeuryAble的集合,可以继续枚举. Sample: string[] World = { "Hello","World"}; string[] Brother = { "Hello","Brother"}; var r…
Linq分组操作之GroupBy,GroupJoin扩展方法源码分析 一. GroupBy 解释: 根据指定的键选择器函数对序列中的元素进行分组,并且从每个组及其键中创建结果值. 查询表达式: var list = new List<object>() { 20, 30, 24 };查询表达式: var query = from n in list group n by n into grp select new { MyKey = grp.Key, MyValue = grp.Count()…
1.数据分组求合,分别用的实体类以及datatable来分组求合,还有分组求和之后的如何取值 //实体类版本 List<ProgramTimeModel> TotalAllList = GetData(); var a = from p in TotalAllList.AsEnumerable() group p by p.ProgramTime_ID into g select new ProgramTimeModel { ProgramTime_ID = g.Key, Saled = g.…
DataTable Linq查询 1.查询DataRow IEnumerable<DataRow> q1 = from r in dt.AsEnumerable() == select r; 2.查询某个字段 var query2 = from pl in dt.AsEnumerable( ) select pl.Field<string>("Name"); 3.group by var query = from r in dt.AsEnumerable() g…
DataTable通过dt.AsEnumerable()方法转换可用Linq查询,反之,Linq也可以转化为DataTableDataTable newDt = query1.CopyToDataTable<DataRow>();var query1 =    from stu in dtStu.AsEnumerable()    from score in dtScore.AsEnumerable()    where stu.Field<int>("ScoreID&q…
Group在SQL经常使用,通常是对一个字段或者多个字段分组,求其总和,均值等. Linq中的Groupby方法也有这种功能.具体实现看代码: 假设有如下的一个数据集: 01.public class StudentScore 02.{ 03.public int ID { set; get; } 04.public string Name { set; get; } 05.public string Course { set; get; } 06.public int Score { set;…
这里介绍Linq使用Group By和Count得到每个CategoryID中产品的数量,Linq使用Group By和Count得到每个CategoryID中断货产品的数量等方面. 学经常会遇到Linq使用Group By问题,这里将介绍Linq使用Group By问题的解决方法. 1.计数 var q = from p in db.Products group p by p.CategoryID into g select new { g.Key, NumProducts = g.Count…
没什么好说的,因为用的到,所以作个记录, 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleMe { class Program { static List<Person> persons1 = new List<Person>(); static void…
转载:http://www.cnblogs.com/zq281660880/archive/2012/09/26/2704836.html 今天在使用linq处理一下需求时碰到一点小问题,特此记录. 需求: 按照品名相同的进行汇总,数量相加.表号按分号分割显示 1.组织测试数据表 DataTable tableA1 = new DataTable(); tableA1.Columns.AddRange(new DataColumn[] { new DataColumn("品名"), n…
根据部门分组 ,然后存储部门下所有员工 public class Custom { public string dname { get; set; } public List<Employees> lis { get; set; } } public class Employees { public string id { get; set; } public string name { get; set; } public string depart { get; set; } } stat…
转载: https://www.cnblogs.com/cncc/p/9846390.html 一.先准备要使用的类: 1.Person类: class Person { public string Name { set; get; } public int Age { set; get; } public string Gender { set; get; } public override string ToString() => Name; } 2.准备要使用的List,用于分组(Grou…
1.lin语句 int[] nums = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0, 3 }; DataTable table = new DataTable("Numbers"); table.Columns.Add("number", typeof(int)); foreach (int n in nums) { table.Rows.Add(new object[] { n }); } var numbers = table.AsEnume…
static void Main()         {             DataTable dt = new DataTable();             dt.Columns.Add("c1", typeof(int));             dt.Columns.Add("c2", typeof(string));             dt.Columns.Add("c3", typeof(int));         …
public class HIS_CLIREGISTER : BaseModel{ private String _FBCODE;[StringLength(8)]/// <summary>/// 费别/// </summary>public String FBCODE{get { return _FBCODE; }set{if (_FBCODE != value && RowState == RowStateFlags.ROW_Original){RowState…
Person1: Id=, Name="Test1" Person2: Id=, Name="Test1" Person3: Id=, Name="Test2" 以上list如果直接使用distinct方法进行过滤,仍然返回3条数据,而需要的结果是2条数据.下面给出解这个问题的方法: 方法1: Distinct 方法中使用的相等比较器.这个比较器需要重写Equals和GetHashCode方法,个人不推荐,感觉较麻烦,需要些多余的类,并且用起来还…
表一: 表二: 已知表一的List,想得到表二的结果: var query = from c in t.AsEnumerable() group c by new { pingming = c.Field<string>("品名"), guige = c.Field<string>("规格") } into s select new { pingming = s.Select(p => p.Field<string>(&qu…
实例: DataTable data = new DataTable(); data.Columns.Add("schoolid", Type.GetType("System.Int32")); data.Columns.Add("ccid", Type.GetType("System.Int32")); DataRow newRow1 = data.NewRow(); newRow1["schoolid"…
string[] arrStr = { ".com", "www.baidu.com", "www.qq.com", "www.bing.cn", "www.avc.net","www.vvv.cn","www.bbb.net" }; //定义查询规则 var addressG = from gg in arrStr                          …
static List<User> list1 = new List<User>() { new User(){id=1,name="张三"}, new User(){id=2,name="张三"}, new User(){id=3,name="张三"}, new User(){id=4,name="李四"}, new User(){id=5,name="李四"}, new User…
var data = from r in listRecords group r by new { r.CampaignId, r.CityId, r.Gift_DistributorId, r.ProductGiftId, FirstQuantity = listRecords.Where(a => a.CampaignId == r.CampaignId && a.CityId == r.CityId && a.Gift_DistributorId == r.Gi…
var groupResults = from gr in models && gr.Temperature != && gr.Humidity != && gr.Pm25 != group gr by new { gr.IP, gr.Name, gr.Port } into g select new { g.Key.IP, g.Key.Name, g.Key.Port, NoiseAvg = g.Average(m => m.Noise), Nois…
个人感觉Linq实用灵活性很大,参考一篇大牛的文章LINQ查询返回DataTable类型 http://xuzhihong1987.blog.163.com/blog/static/26731587201101853740294/ 附上自己写的一个测试程序源代码. 下载 //创建自定义DataTable String[] _sFiled = new String[] { "ID", "PC", "EPC", "CRC", &q…
public static void PrintPersons() { //准备数据 DataTable dt = new DataTable(); dt.Columns.Add(new DataColumn("ID", typeof(int))); dt.Columns.Add(new DataColumn("UserName", typeof(string))); dt.Columns.Add(new DataColumn("DeptNo",…
关于datatable datarow DataTable paraval = GetParaVal(DateCondition, strUrl, Page, RowPage, iYearMonthNow, 2); var query = from t in paraval.AsEnumerable() //datatable 和linq转换 group t by new { t1 = t.Field<string>("InsKind") } into m select n…
LINQ分组取出第一条数据 Person1: Id=1, Name="Test1" Person2: Id=1, Name="Test1" Person3: Id=2, Name="Test2" 以上list如果直接使用distinct方法进行过滤,仍然返回3条数据,而需要的结果是2条数据.下面给出解这个问题的方法: 方法1: Distinct 方法中使用的相等比较器.这个比较器需要重写Equals和GetHashCode方法,个人不推荐,感觉较…