【C#】【System.Linq】一些便捷的数据处理方法(Range、Select)
因为用习惯了Python中一些便捷的方法,随即查询C#中有没有类似的。
一、Range()方法
在Python中,range(Start,End,Step)可以直接生成一个可迭代对象,便用于需要循环多次处理某些代码块:
(注:Range方法中的End是开区间,range(1,10)实际的取值是(1 ~ 9))
1 for item in range(1, 10):
2 print(item, end='')
3 # Output:
4 # 123456789
在C#中也有相同的方法可以使用:
System.Linq 命名空间中的 Enumerable.Range(Start, Count)
1 foreach(int item in Enumerable.Range(1, 10))
2 Console.Write($"{item}=");
3 // Output:
4 // 1=2=3=4=5=6=7=8=9=10=
range(Start,End,Step)和Enumerable.Range(Start, Count)中的参数含义有别:
range 依次是 开始,结束,步长,且生成的对象并不包括End这个元素。
Range 依次是 开始,数量,即从1开始,向后数10个数,所以上述输出的结果是1~10,如果改成Range(0, 10)则结果将是0~9。
二、Select()方法
其对应着Python中的Enumerate()方法,即遍历元素的同时,并将对应的下标也赋值给index:
1 for index, item in enumerate(range(1, 10)):
2 print(f'元素 | {item} | 的下标是:{index}')
3 # Output:
4 '''
5 元素 | 1 | 的下标是:0
6 元素 | 2 | 的下标是:1
7 元素 | 3 | 的下标是:2
8 元素 | 4 | 的下标是:3
9 元素 | 5 | 的下标是:4
10 元素 | 6 | 的下标是:5
11 元素 | 7 | 的下标是:6
12 元素 | 8 | 的下标是:7
13 元素 | 9 | 的下标是:8
14 '''
C#中Select()方法来实现,Select方法可以对集合进行转换,并返回一个包含转换后元素的新集合。
1 foreach (var item in Enumerable.Range(1, 10).Select((num, index) => new { Index = index, Num = num }))
2 Console.WriteLine($"Index: {item.Index}, Num: {item.Num}");
3
4 // Output:
5 //Index: 0, Num: 1
6 //Index: 1, Num: 2
7 //Index: 2, Num: 3
8 //Index: 3, Num: 4
9 //Index: 4, Num: 5
10 //Index: 5, Num: 6
11 //Index: 6, Num: 7
12 //Index: 7, Num: 8
13 //Index: 8, Num: 9
14 //Index: 9, Num: 10
Select()方法中的参数含义依次为,元素,下标,如果写成Select(index, num)那么index将表示元素,num将表示下标。
【C#】【System.Linq】一些便捷的数据处理方法(Range、Select)的更多相关文章
- 整理一下 System.Linq.Enumerable 类中的那些比较少用的方法
Linq 虽然用得多,但是里面有一些方法比较少用,因此整理一下.Enumerable 类的所有方法可以在 MSDN 上查阅到:https://msdn.microsoft.com/zh-cn/libr ...
- mvc ef LINQ to Entities 不识别方法“Int32 Parse(System.String)”,因此该方法无法转换为存储表达式。
private sys_User GetUserInfo() { sys_User model = null; var userId = Convert.ToInt32(AccountHelper.G ...
- LINQ to Entities 不识别方法“System.String ToString()”,因此该方法无法转换为存储表达式。
var data = DataSource.Skip(iDisplayStart).Take(iDisplayLength).Select(o => new { MatNR = o.MatNR, ...
- Linq中字段数据类型转换问题(Linq to entity,LINQ to Entities 不识别方法"System.String ToString()"问题解决)
1.在工作中碰到这样一个问题: 使用linq时,需要查询两个表,在这两张表中关联字段分别是int,和varchar()也就是string,在linq中对这两个字段进行关联, 如果强制类型转换两个不同类 ...
- LINQ to Entities 不识别方法“System.DateTime AddDays(Double)
今天本想在linq里按照时间筛选一下超时的数据,一共两个字段FeedBackTime(计划反馈时间).EndTime(实际反馈时间).需求是这样的,查找数据库里所有EndTime大于FeedBackT ...
- LINQ to Entities 不识别方法“System.String get_Item(Int32)”,因此该方法无法转换为存储表达式。
1.LINQ to Entities 不识别方法“System.String get_Item(Int32)”,因此该方法无法转换为存储表达式.项目中发现linq to entities 不识别? , ...
- LINQ to Entities 不识别方法“System.Guid Parse(System.String)”,因此该方法无法转换为存储表达式。
LINQ to Entities 不识别方法"System.Guid Parse(System.String)",因此该方法无法转换为存储表达式. linq 中不能转换类型
- LINQ to Entities 不识别方法"System.String ToString()",因此该方法无法转换为存储表达式 的解决方法
一.案例1,及解决方案: "LINQ to Entities 不识别方法"System.String ToString()",因此该方法无法转换为存储表达式." ...
- LINQ to Entities 不识别方法“System.String ToString(System.String)”,因此该方法无法转换为存储表达式。
来源:https://www.cnblogs.com/hao-1234-1234/p/9112434.html 6 Select的时候,时间无法转换成 年月日 YYMMMdd 报错:LINQ to ...
- 《Entity Framework 6 Recipes》中文翻译系列 (26) ------ 第五章 加载实体和导航属性之延缓加载关联实体和在别的LINQ查询操作中使用Include()方法
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 5-7 在别的LINQ查询操作中使用Include()方法 问题 你有一个LINQ ...
随机推荐
- Xshell7 / Xftp7 永久免费,官网直连下载地址
主要目的是让大家随时随地从官网下载Xshell和Xftp免费版(个人/家庭/学校免费) 最新变动:官方目前仅提供最新版以及上一个版本的软件下载!其他版本不提供下载 免费版5版本(最后一个版本,无任何限 ...
- List取指定元素
例如: List<string> list = new List<string>(); list.Take(50).ToList();//取前50条 list.Skip(10) ...
- 【RocketMQ】【源码】延迟消息实现原理
RocketMQ设定了延迟级别可以让消息延迟消费,延迟消息会使用SCHEDULE_TOPIC_XXXX这个主题,每个延迟等级对应一个消息队列,并且与普通消息一样,会保存每个消息队列的消费进度(dela ...
- Vue3+vite路由配置优化(自动化导入)
今天在维护优化公司中台项目时,发现路由的文件配置非常多非常乱,只要只中大型项目,都会进入很多的路由页面,规范一点的公司还会吧路由进行模块化导入,但是依然存在很多文件夹的和手动导入的问题. 于是我想到了 ...
- Solution Set -「ARC 111」
「ARC 111A」Simple Math 2 Link. \(\lfloor \frac{10^N - kM^2}{M} \rfloor \equiv \lfloor \frac{10^N}{M} ...
- DevOps|破除壁垒,重塑协作-业务闭环释放产研运协作巨大效能
- 会议太多了,员工开会效率降低了50%! 上篇文章<研发效能组织架构:职能独立vs业务闭环>介绍了职能独立型组织架构和业务闭环型组织架构的特点,优劣势.也许有的小伙伴可能对这两种组织架构 ...
- fmt 库简介和示例【GO 基础】
〇.关于 fmt fmt 标准库是 Go 语言标准库的一部分,提供了格式化字符串.输入输出等基本功能.通过 fmt 库,我们可以进行简单的格式化输出.读取用户输入.错误输出等操作. fmt 库实现了类 ...
- ElasticSearch系列——倒排索引、删除映射类型、打分机制、配置文件、常见错误
文章目录 1 倒排索引 2 删除映射类型 一 前言 二 什么是映射类型? 三 为什么要删除映射类型? 四 映射类型的替代方法 4.1 将映射类型分开存储在索引中 4.2 自定义类型字段回到顶部 五 没 ...
- C#学习笔记——变量、常量和转义字符
变量 变量是存储数值的容器,是一门程序语言的最基础的部分. 不同的变量类型可以存储不同类型的数值. 种类: 在C#种一共有14种变量: 有符号类型4种 无符号类型4种 浮点数3种 特殊类型(char ...
- 我试图扯掉这条 SQL 的底裤。
你好呀,我是歪歪. 这次带大家盘一个我觉得有点意思的东西,也是之前写<一个烂分页,踩了三个坑!>这篇文章时,遇到的一个神奇的现象,但是当时忙着做文章搞定这个主线任务,就没有去深究这个支线任 ...