与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示例相关推荐

  1. 【翻译】Pro LINQ Language Integrated Query in C# 2008 -- 第三章 (LINQ TO Objects) 第一节

    LINQ到Objects LINQ到Objects介绍 示例 3-1. 一个LINQ到Objects查询的示例. string[] presidents = {     "Adams&quo ...

  2. 从LINQ开始之LINQ to Objects(上)

    LINQ概述 LINQ,语言集成查询(Language Integrated Query),它允许使用C#或VB代码以查询数据库相同的方式来操作不同的数据源. LINQ体系结构 从上图可以看出,LIN ...

  3. 从LINQ开始之LINQ to Objects(下)

    前言 上一篇<从LINQ开始之LINQ to Objects(上)>主要介绍了LINQ的体系结构.基本语法以及LINQ to Objects中标准查询操作符的使用方法. 本篇则主要讨论LI ...

  4. LINQ: Reconciling objects, relations and XML in the .NET framework

    自己译的,感觉意译挺多,不中足之处还请见谅,也算帮找这篇文章的朋友一个忙,转载前没有见过相关协议与说明,如果此篇翻译侵犯了作者权益,请与本人联系,本人将关闭此文章 LINQ: Reconciling  ...

  5. Does the “LINQ to Objects” provider have built-in performance optimization?

    让我们从基础开始,可能会重复一些你已经知道的信息.在LINQ性能优化中最重要的一点,当然是延迟执行.那便意味着当你声明一个变量并分配给它一个查询字符串,其查询字符串并没有立即执行 // Query i ...

  6. [翻译]“LINQ to Objects”提供程序是否内置性能优化?

    原文来自Alexandra Rusina在CSharpFAQ的:Does the "LINQ to Objects" provider have built-in performa ...

  7. 查询表达式和LINQ to Objects

    查询表达式实际上是由编译器"预处理"为"普通"的C#代码,接着以完全普通的方式进行编译.这种巧妙的发式将查询集合到了语言中,而无须把语义改得乱七八糟 LINQ的 ...

  8. WPF DataGrid 和LINQ to SQL示例程序之一 (提供源代码下载)

    WPF DataGrid 和LINQ to SQL示例程序之一 (提供源代码下载) WPF DataGrid 系列示例程序,由浅入深逐步介绍如何在WPF 应用程序中使用新的DataGrid 控件.本篇 ...

  9. 自己动手重新实现LINQ to Objects: 9 - SelectMany

    本文翻译自Jon Skeet的系列博文"Edulinq". 本篇原文地址: http://msmvps.com/blogs/jon_skeet/archive/2010/12/27 ...

最新文章

  1. mysql 远程连接速度慢的解决方案
  2. 机器学习知识点(五)梯度下降法Java实现
  3. Directory /opt/jfrog/artifactory/var has bad permissions for user id 1030
  4. java上传视频到七牛云_Java进阶学习:将文件上传到七牛云中
  5. php轻博客社区视频教程,轻博客主题 - SEO极致优化的ZBLOG轻博客主题
  6. 元气骑士如何获得机器人成就皮肤_元气骑士:获得成就叹息之墙,花圃免费开,附带5000蓝币奖励...
  7. 我们需要一次怎样的数据架构变革?
  8. 单元测试基本路径覆盖法(转)
  9. dc游戏java_极限飞车-穿越峡谷(DC出品)
  10. 在Windows下正确安装Scipy与Numpy
  11. Activiti开发案例之代码生成工作流图片
  12. 2021-04-26
  13. 小程序手写板电子签名
  14. 聊天软件开发_3_数据库表设计
  15. 对拍--from Altf4
  16. matlab读取视频VideoRead用法
  17. Unity超链接:支持点击事件,下划线以及自定义颜色
  18. 三论 (信息论、控制论、系统论的合称)
  19. C语言基础入门——保姆式教程(2022版最全最新整理)
  20. 描写火车站场景_描写春运火车拥挤的作文_火车站上

热门文章

  1. Windows 10四大版本官方对比:国人肯定专业版
  2. 一文搞懂Raft算法
  3. 钉钉内部视频遭曝光:疯子无招“逼疯”产品经理
  4. iOS NSString 字符串处理:截取字符串、匹配字符串、分隔字符串
  5. cocos2dx 大地图分块加载的研究(初)
  6. 关于IBM Lotus的JAVA代理进入jar包的说明
  7. Windows server 2003下Oracle10g安装图解
  8. hive 和 impala 时间参数错误的问题 yyyy-MM-dd
  9. Centos 6.x 安装 docker
  10. ORA-28002: the password will expire