Linq分组
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.AsEnumerable();
                var numberGroups =
                    from n in numbers
                    group n by n.Field<int>("number") into g
                    select new { Remainder = g.Key, Numbers = g };
                foreach (var g in numberGroups)
                {
                    Console.WriteLine("Numbers with a remainder of {0} when divided by 5:", g.Remainder);
                    foreach (var n in g.Numbers)
                    {
                        Console.WriteLine(n.Field<int>("number") + ",count:" + g.Numbers.Count());
                    }
                }
2.比较器
public void Method{
var anagrams = testDS.Tables["Anagrams"].AsEnumerable();
                var orderGroups = anagrams.GroupBy(w => w.Field<string>("anagram").Trim(), new AnagramEqualityComparer());
                foreach (var g in orderGroups)
                {
                    Console.WriteLine("Key: {0}", g.Key);
                    foreach (var w in g)
                    {
                        Console.WriteLine("\t" + w.Field<string>("anagram"));
                    }
                }
}
//创建一个比较器
 private class AnagramEqualityComparer : IEqualityComparer<string>
            {
                public bool Equals(string x, string y)
                {
                    return getCanonicalString(x) == getCanonicalString(y);
                }
                public int GetHashCode(string obj)
                {
                    return getCanonicalString(obj).GetHashCode();
                }
                private string getCanonicalString(string word)
                {
                    char[] wordChars = word.ToCharArray();
                    Array.Sort<char>(wordChars);
                    return new string(wordChars);
                }
            }
Linq分组的更多相关文章
- Linq分组功能
		Linq在集合操作上很方便,很多语法都借鉴自sql,但linq的分组却与sql有一定的区别,故整理发布如下. 1. Linq分组 分组后以Key属性访问分组键值. 每一组为一个IEnumberAbl ... 
- Linq分组操作之GroupBy,GroupJoin扩展方法源码分析
		Linq分组操作之GroupBy,GroupJoin扩展方法源码分析 一. GroupBy 解释: 根据指定的键选择器函数对序列中的元素进行分组,并且从每个组及其键中创建结果值. 查询表达式: var ... 
- Linq分组,linq方法分组
		Group在SQL经常使用,通常是对一个字段或者多个字段分组,求其总和,均值等. Linq中的Groupby方法也有这种功能.具体实现看代码: 假设有如下的一个数据集: 01.public class ... 
- Linq分组查询统计
		这里介绍Linq使用Group By和Count得到每个CategoryID中产品的数量,Linq使用Group By和Count得到每个CategoryID中断货产品的数量等方面. 学经常会遇到Li ... 
- C# 泛型分组和Linq分组的异同
		没什么好说的,因为用的到,所以作个记录, 代码如下: using System; using System.Collections.Generic; using System.Linq; using ... 
- c# linq 分组groupby
		转载: https://www.cnblogs.com/cncc/p/9846390.html 一.先准备要使用的类: 1.Person类: class Person { public string ... 
- linq分组求和_实体类和datatable
		1.数据分组求合,分别用的实体类以及datatable来分组求合,还有分组求和之后的如何取值 //实体类版本 List<ProgramTimeModel> TotalAllList = G ... 
- 示例, linq分组
		public class HIS_CLIREGISTER : BaseModel{ private String _FBCODE;[StringLength(8)]/// <summary> ... 
- LINQ分组取出第一条数据
		Person1: Id=, Name="Test1" Person2: Id=, Name="Test1" Person3: Id=, Name="T ... 
- C# DataTable 通过Linq分组
		datatable我们是经常使用到的,但是需要对数据进行分组,具体代码如下: var result = dt.AsEnumerable().GroupBy(f => new { type = f ... 
随机推荐
- linux 批量kill进程
			ps -ef | grep module- | grep -v module-mxm | cut -c 9-15 | xargs kill -9 ps -ef | grep module- 查找关键字 ... 
- Dynamic range compression
			这段时间终于把手头的东西都搞完了,还剩下一个AEC这个模块,这个模块跟整个系统机制有很大关系,单独的模块意义不大. 另外,刚写完一个分类器,希望能大幅提升音乐流派分类的准确率. 下周正式开搞AEC,把 ... 
- jsp 入门 cookie session
			Java Server Page ==> 服务器端的动态页面资源.用来做显示的功能. JSP构成 ==> HTML 脚本代码 标签构成. JSP 原理 ==> 实际上就是 servl ... 
- GET和POST
			Ajax与Comet 1. Ajax Asynchronous Javascript+xml :能够向服务器请求额外的数据而无需卸载页面. Ajax技术的核心是XMLHttpRequest 对象(简称 ... 
- LVS集群之DR模式 实现
			ps:做 dr 模式 之前,先把之前做过的操作清空掉 1.ipvsadm -ln 查看规则 2.ipvsadm -C 清空规则 3.ipvsadm -ln 确认 4.iptables -t nat - ... 
- NEFU 560 半数集
			题目链接 递推就行,把a[0]设为1很巧妙. #include <cstdio> #include <iostream> using namespace std; ]={}; ... 
- seajs和requirejs
			一.seajs 1. 使用seajs的一般步骤 a)在主页面引入sea.js b)写模块 c)在主页面使用模块 2.模块的写法 math.js define(function(require, exp ... 
- iOS之ToolBar定制
			ToorBar的定制 在诸如社区类的app里面,很多都涉及到用户发布消息,如现今最流行的新浪微博,每条信息底部都会有个工具条,正如下图所示,有转发.评论和点赞三个按钮的工具条. 结构 1.作为一个独立 ... 
- resultMap 映射
			1. sql的重用:定义一个sql片段,可在任何SQL语句中重用该片段. <sql id="personColumns"> name, sex, updateTime& ... 
- 【xcode5的使用】
			layout: post title: "WWDC 2013 Session笔记 - Xcode5和ObjC新特性" date: 2013-06-13 10:05 comments ... 
