ASP.NET通过WMI创建站点添加虚拟目录和主机头
分组Grouping 主要方法: GroupBy: 将一个序列分组插入一个子序列, 对应SQL语法是GROUP BY 主要参数: 输入序列: IEnumerable 主键选择器: TSource => TKey 元素选择器(可选): TSource => TElement 比较器(可选):IEqualityComperar 返回类型是IEnumerable> 简要介绍 GroupBy将一个扁平的输入序列转换成一组序列, 例如,以下示例通过文件扩展名将c:\temp下面的文件分组: 1: string[] files = Directory.GetFiles(“c:\\temp”); 2:
3: IEnumerable<string,string>> query = 4:
5: files.GroupBy(file => Path.GetExtension(file));
或者,你可以使用隐式类型减少代码输入: 1: var query = files.GroupBy(file => Path.GetExtension(file));
枚举返回结果: 1: foreach (IGrouping<string,string>grouping in query) 2:
3: {
4:
5: Console.WriteLine(“Extension: “ + grouping.Key);
6:
7: foreach (string filename in grouping) 8:
9: Console.WriteLine (” - “ + filename);
10:
11: }
Enumerable.GroupBy将输入元素读入临时的目录字典,所有拥有相同key的元素都会被归入相同的二级目录. 默认情况下, 每一个grouping的元素都是未转换的输入元素, 除非你提供了一个elementSelector参数. 以下查询将每一个元素都转换为大写: 1: files.GroupBy (file =>
2:
3: ath.GetExtension (file), file => file.ToUpper());
elementSelector和keySelector是独立的,因此此查询将会得到与上面一样的分组结果. 另外,所有的子序列并不会根据字母排序,它只做分组, 而没有做任何排序相关的工作, 只是简单保存了原有序列排列的顺序. 如果你要排序, 必须要显式调用OrderBy操作符: 1: string[] files = Directory.GetFiles(“c:\\temp”); 2:
3: files.GroupBy (file => Path.GetExtension(file), file => file.ToUpper())
4:
5: .OrderBy (grouping => grouping.Key);
如果使用复合查询语法: 1: from file in files 2:
3: group file.ToUpper() by Path.GetExtension(file);
与select类似, group结束一个查询语句,除非你使用”延续查 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |