Array.ConvertAll<TInput, TOutput> 数组相互转化方法
有个需求,把char数组转换为int数组,然后噼里啪啦就弄了这样一堆代码;
public static int[] CharArrToIntArr(char[] charArr)
{
int[] ints = new int[charArr.Length];
for (int i = 0; i < charArr.Length; i++)
{
ints[i] = (int)charArr[i];
}
return ints;
}
后来又有需求,把int数组在转换为char数组,然后上面代码又噼里啪啦弄了一堆,这个时候就发现,
写的这一堆代码是多么的辣鸡,一个类型转换需要那么多代码,如果在遇到string数组转char数组,
char数组再转string数组,这样转换来转换去,一点都不优雅;
后来找到了一个Array.ConvertAll<TInput, TOutput> 方法,完美解决:
这个方法用途:将一种类型的数组转换为另一种类型的数组,比如讲char[] 数组转化为int[] 数组。
类型参数
- TInput:源数组元素的类型。
- TOutput:目标数组元素的类型。
- 示例代码:
- 将char 数组转换为int 数组
char[] charArray = new char[] { 'a', 'b', 'c' };
int[] intArray = Array.ConvertAll<char, int>(charArray, value => Convert.ToInt32(value));
对比之后,发现代码简洁了好多,那么效率有什么区别呢?
来对比一波
char[] charArray = new char[] { 'a', 'b', 'c' };
DateTime startDate = DateTime.Now;
for (int i = 0; i <; i++)
{
//int[] intArray = Array.ConvertAll<char, int>(charArray, value => Convert.ToInt32(value));
int[] intArray = Test_1.CharArrToIntArr(charArray);
}
DateTime endDate = DateTime.Now;
Console.WriteLine((endDate - startDate).TotalMilliseconds);
运行了十次之后,看下平均值,发现二者差距不是特别大,不过还是推荐 Array.ConvertAll 方法,因为是原生的,简洁明了;

Array.ConvertAll<TInput, TOutput> 数组相互转化方法的更多相关文章
- C#类型的转换:Converter<TInput, TOutput> 委托的使用
Converter<TInput, TOutput> 委托 表示将对象从一种类型转换为另一种类型的方法. 此委托由 Array 类的 ConvertAll<TInput, TOutp ...
- array、list和set相互转化的方法
这里总结一下Array.List和Set相互转化的方法. Array转化为List 将Array转化为List是使用Arrays.asList()方法. String[] arr= new Strin ...
- 数组的方法 Array.map();Array.every()和Array.some();数组的indexof();检测是否是数组isArray(obj);
数组的方法 Array.map(); 栗子: var a=[1,2,,3]; var b=a.map( function(value){return value*value} ); alert(b); ...
- iOS 判断数组array中是否包含元素a,取出a在array中的下标+数组方法详解
目前找到来4个解决办法,第三个尤为简单方便 NSArray * arr = @["]; //是否包含 "]) { NSInteger index = [arr indexOfObj ...
- js中Array数组基本方法
总结:push() 添加元素到数组未尾, 返回数组长度 unshift() 添加元素到数组头部, 返回数组长度 pop() 删除数组未尾元素, 返回删除元素 shift() 删除数组头部元素, 返回删 ...
- Object.prototype.toString.call() 、 instanceof 以及 Array.isArray()判断数组的方法的优缺点
1. Object.prototype.toString.call() 每一个继承 Object 的对象都有 toString 方法,如果 toString 方法没有重写的话,会返回 [Object ...
- Array数组的方法总结
1.检测数组 自从ECMAScript3作出规定后,就出现了确定某个对象是不是数组的经典问题.对于一个网页,或者一个全局作用域而言,使用instanceof操作符就能得到满意结果. if (value ...
- jquery遍历数组与筛选数组的方法
grepgrep()方法用于数组元素过滤筛选 grep(array,callback,invert)array:待过滤数组;callback:处理数组中的每个元素,并过滤元素,该函数中包含两个参数,第 ...
- ES6之数组扩展方法【一】(相当好用)
form 转化为真正的数组 先说一下使用场景,在Js中,我们要经常操作DOM,比如获取全部页面的input标签,并且找到类型为button的元素,然后给这个按钮注册一个点击事件,我们可能会这样操作: ...
随机推荐
- linux——常用命令
学习linux命令地址: 学习命令地址,可参考http://linux.51yip.com/ 在文件中搜索指定字符串 grep -i "requirepass" redis.con ...
- java 中 IO 流分为几种?(未完成)
java 中 IO 流分为几种?(未完成)
- shell 跟$有关的各种怪命令集锦
$ 这个程式的执行名字 $n 这个程式的第n个参数值,n=.. $* 这个程式的所有参数,此选项参数可超过9个. $# 这个程式的参数个数 $$ 这个程式的PID(脚本运行的当前进程ID号) $! 执 ...
- struts2编写表单提交简单的(2)
实体 package com.oak.entity; public class User {private int id;private String username;private String ...
- NodeList对象的特点
nodeList对象的特点1,nodeList是一种类数组对象,用于保存一组有序的节点.2,通过方括号来访问nodeList的值,有item方法与length属性.3,它并不是Array的实例,没有数 ...
- Luogu P2532 [AHOI2012]树屋阶梯 卡特兰数
接着压位OvO... 我不会告诉你答案就是卡特兰数... 为什么呢? 首先,$ans[0]=1,ans[1]=1,ans[2]=2$ 对于$ans[3]$,我们可以发现他是这样来的: $ans[3]= ...
- @WebServlet @WebListener @WebListener
- [SDOI2006]最短距离
洛谷题目链接 声明: 本篇文章只大概讲思路 原串设为$s1$,目标串设为$s2$,$n1,n2$分别为他们的长度 我们考虑$dp$,设$f[i][j]$表示$s1$中删除到了第$i$个字符,$s2$中 ...
- 【luogu2668斗地主】模拟
题目描述: 输入格式: 输出格式: 输入样例: 1: 1 8 7 4 8 4 9 1 10 4 11 1 5 1 1 4 1 1 2: 1 17 12 3 4 3 2 3 5 4 10 2 3 3 1 ...
- IVIEW组件的render方法在Table组件中的使用
后端项目地址:https://gitee.com/wlovet/table-server 前端项目地址: https://gitee.com/wlovet/table-project 一.Rende ...