Linq to objects示例
与linq to sql类似,所有继承了IEnumerable的类型均可使用LINQ,如下string[]数组基类为Array,而Array实现了IEnumerable,所以也可使用linq
static void Main(string[] args){string[] myWords = new string[] { "what", "is", "your", "name", "my", "name", "is" };var obj = from m in myWordsgroup m by m.Length into lengthgroupsorderby lengthgroups.Keyselect new{length = lengthgroups.Key,wordCollection = lengthgroups};foreach (var item in obj){Console.WriteLine("包含" + item.length + "个字符的单词有:");foreach (string stra in item.wordCollection){Console.WriteLine(stra);}}
另一种写法:
static void Main(string[] args){string[] myWords = new string[] { "what", "is", "your", "name", "my", "name", "is" };var groups = myWords.GroupBy(o => o.Length);foreach (var item in groups){Console.WriteLine("包含" + item.Key + "个字符的单词有:");foreach (string stra in item){Console.WriteLine(stra);}}
或者:
static void Main(string[] args){string[] myWords = new string[] { "what", "is", "your", "name", "my", "name", "is" };var groups = myWords.GroupBy(o => o.Length);foreach (IGrouping<int,string> item in groups){Console.WriteLine("包含" + item.Key + "个字符的单词有:");foreach (string stra in item){Console.WriteLine(stra);}}
获取序列中元素位置:
string[] myWords = new string[] { "what", "is", "your", "name", "my", "name", "is" };var words = myWords.Select((word, index) => { return new { index, word.Length, word, title = "aaa" }; }).OrderBy(o => o.Length);
Select方法有两种定义,这里用的是第一种,可以接受的是一个TSource和一个int类型的参数返回为自定义匿名类型的匿名方法
//// 摘要:// 通过合并元素的索引将序列的每个元素投影到新表中。//// 参数:// source:// 一个值序列,要对该序列调用转换函数。//// selector:// 一个应用于每个源元素的转换函数;函数的第二个参数表示源元素的索引。//// 类型参数:// TSource:// source 中的元素的类型。//// TResult:// selector 返回的值的类型。//// 返回结果:// 一个 System.Collections.Generic.IEnumerable<T>,其元素为对 source 的每个元素调用转换函数的结果。//// 异常:// System.ArgumentNullException:// source 或 selector 为 null。public static IEnumerable<TResult> Select<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, int, TResult> selector);//// 摘要:// 将序列中的每个元素投影到新表中。//// 参数:// source:// 一个值序列,要对该序列调用转换函数。//// selector:// 应用于每个元素的转换函数。//// 类型参数:// TSource:// source 中的元素的类型。//// TResult:// selector 返回的值的类型。//// 返回结果:// 一个 System.Collections.Generic.IEnumerable<T>,其元素为对 source 的每个元素调用转换函数的结果。//// 异常:// System.ArgumentNullException:// source 或 selector 为 null。public static IEnumerable<TResult> Select<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, TResult> selector);
其实LINQ本质就是为IEnumerable接口扩展了一大堆静态泛型方法
转载于:https://www.cnblogs.com/Finding2013/archive/2013/04/24/3040655.html
Linq to objects示例相关推荐
- 【翻译】Pro LINQ Language Integrated Query in C# 2008 -- 第三章 (LINQ TO Objects) 第一节
LINQ到Objects LINQ到Objects介绍 示例 3-1. 一个LINQ到Objects查询的示例. string[] presidents = { "Adams&quo ...
- 从LINQ开始之LINQ to Objects(上)
LINQ概述 LINQ,语言集成查询(Language Integrated Query),它允许使用C#或VB代码以查询数据库相同的方式来操作不同的数据源. LINQ体系结构 从上图可以看出,LIN ...
- 从LINQ开始之LINQ to Objects(下)
前言 上一篇<从LINQ开始之LINQ to Objects(上)>主要介绍了LINQ的体系结构.基本语法以及LINQ to Objects中标准查询操作符的使用方法. 本篇则主要讨论LI ...
- LINQ: Reconciling objects, relations and XML in the .NET framework
自己译的,感觉意译挺多,不中足之处还请见谅,也算帮找这篇文章的朋友一个忙,转载前没有见过相关协议与说明,如果此篇翻译侵犯了作者权益,请与本人联系,本人将关闭此文章 LINQ: Reconciling ...
- Does the “LINQ to Objects” provider have built-in performance optimization?
让我们从基础开始,可能会重复一些你已经知道的信息.在LINQ性能优化中最重要的一点,当然是延迟执行.那便意味着当你声明一个变量并分配给它一个查询字符串,其查询字符串并没有立即执行 // Query i ...
- [翻译]“LINQ to Objects”提供程序是否内置性能优化?
原文来自Alexandra Rusina在CSharpFAQ的:Does the "LINQ to Objects" provider have built-in performa ...
- 查询表达式和LINQ to Objects
查询表达式实际上是由编译器"预处理"为"普通"的C#代码,接着以完全普通的方式进行编译.这种巧妙的发式将查询集合到了语言中,而无须把语义改得乱七八糟 LINQ的 ...
- WPF DataGrid 和LINQ to SQL示例程序之一 (提供源代码下载)
WPF DataGrid 和LINQ to SQL示例程序之一 (提供源代码下载) WPF DataGrid 系列示例程序,由浅入深逐步介绍如何在WPF 应用程序中使用新的DataGrid 控件.本篇 ...
- 自己动手重新实现LINQ to Objects: 9 - SelectMany
本文翻译自Jon Skeet的系列博文"Edulinq". 本篇原文地址: http://msmvps.com/blogs/jon_skeet/archive/2010/12/27 ...
最新文章
- mysql 远程连接速度慢的解决方案
- 机器学习知识点(五)梯度下降法Java实现
- Directory /opt/jfrog/artifactory/var has bad permissions for user id 1030
- java上传视频到七牛云_Java进阶学习:将文件上传到七牛云中
- php轻博客社区视频教程,轻博客主题 - SEO极致优化的ZBLOG轻博客主题
- 元气骑士如何获得机器人成就皮肤_元气骑士:获得成就叹息之墙,花圃免费开,附带5000蓝币奖励...
- 我们需要一次怎样的数据架构变革?
- 单元测试基本路径覆盖法(转)
- dc游戏java_极限飞车-穿越峡谷(DC出品)
- 在Windows下正确安装Scipy与Numpy
- Activiti开发案例之代码生成工作流图片
- 2021-04-26
- 小程序手写板电子签名
- 聊天软件开发_3_数据库表设计
- 对拍--from Altf4
- matlab读取视频VideoRead用法
- Unity超链接:支持点击事件,下划线以及自定义颜色
- 三论 (信息论、控制论、系统论的合称)
- C语言基础入门——保姆式教程(2022版最全最新整理)
- 描写火车站场景_描写春运火车拥挤的作文_火车站上
热门文章
- Windows 10四大版本官方对比:国人肯定专业版
- 一文搞懂Raft算法
- 钉钉内部视频遭曝光:疯子无招“逼疯”产品经理
- iOS NSString 字符串处理:截取字符串、匹配字符串、分隔字符串
- cocos2dx 大地图分块加载的研究(初)
- 关于IBM Lotus的JAVA代理进入jar包的说明
- Windows server 2003下Oracle10g安装图解
- hive 和 impala 时间参数错误的问题 yyyy-MM-dd
- Centos 6.x 安装 docker
- ORA-28002: the password will expire