有个需求,把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> 数组相互转化方法的更多相关文章

  1. C#类型的转换:Converter<TInput, TOutput> 委托的使用

    Converter<TInput, TOutput> 委托 表示将对象从一种类型转换为另一种类型的方法. 此委托由 Array 类的 ConvertAll<TInput, TOutp ...

  2. array、list和set相互转化的方法

    这里总结一下Array.List和Set相互转化的方法. Array转化为List 将Array转化为List是使用Arrays.asList()方法. String[] arr= new Strin ...

  3. 数组的方法 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); ...

  4. iOS 判断数组array中是否包含元素a,取出a在array中的下标+数组方法详解

    目前找到来4个解决办法,第三个尤为简单方便 NSArray * arr = @["]; //是否包含 "]) { NSInteger index = [arr indexOfObj ...

  5. js中Array数组基本方法

    总结:push() 添加元素到数组未尾, 返回数组长度 unshift() 添加元素到数组头部, 返回数组长度 pop() 删除数组未尾元素, 返回删除元素 shift() 删除数组头部元素, 返回删 ...

  6. Object.prototype.toString.call() 、 instanceof 以及 Array.isArray()判断数组的方法的优缺点

    1. Object.prototype.toString.call() 每一个继承 Object 的对象都有 toString 方法,如果 toString 方法没有重写的话,会返回 [Object ...

  7. Array数组的方法总结

    1.检测数组 自从ECMAScript3作出规定后,就出现了确定某个对象是不是数组的经典问题.对于一个网页,或者一个全局作用域而言,使用instanceof操作符就能得到满意结果. if (value ...

  8. jquery遍历数组与筛选数组的方法

    grepgrep()方法用于数组元素过滤筛选 grep(array,callback,invert)array:待过滤数组;callback:处理数组中的每个元素,并过滤元素,该函数中包含两个参数,第 ...

  9. ES6之数组扩展方法【一】(相当好用)

    form 转化为真正的数组 先说一下使用场景,在Js中,我们要经常操作DOM,比如获取全部页面的input标签,并且找到类型为button的元素,然后给这个按钮注册一个点击事件,我们可能会这样操作: ...

随机推荐

  1. leaflet的使用

    LeafLet 简单使用 WangKane 关注  0.4 2018.12.03 16:08 字数 887 阅读 3773评论 0喜欢 4 Leaflet 使用 最近在Angular项目中,用到了地图 ...

  2. oracle ORA-16038 ORA-00257

    出现 ORA-16038时也可以参考下边的错误,好像有关联影响 出现ORA-00257错误(空间不足错误),通过查找资料,绝大部分说这是由于归档日志太多,占用了全部的硬盘剩余空间导致的,通过简单删除日 ...

  3. L1L2

    https://baijiahao.baidu.com/s?id=1595711904189222402&wfr=spider&for=pc https://www.cnblogs.c ...

  4. 【Android-ListView控件】显示信息

    效果图 布局文件 layout - activity_main.xml 在主布局添加一个listview控件 <?xml version="1.0" encoding=&qu ...

  5. 基于sed 的猫狗游戏

    1.测试文件 [root@L shells]# cat catDog.txt snake snake pig bird dog cat snake pig bird snake cat bird do ...

  6. parseInt parseFloat isNaN Number 区别和具体的转换规则及用法

    原文链接:https://blog.csdn.net/wulove52/article/details/84953998 在javascript 我经常用到,parseInt.parseFloat.N ...

  7. jQuery系列(五):jQuery操作input的value值

    表单控件是重中之重,因为一旦牵扯到数据交互,离不开form表单的使用,比如用户的注册登录功能等. jQuery操作表单控件的方法: $(selector).val()//设置值和获取值 1.实例代码 ...

  8. ubuntu安装chrome driver

    首先下载Chrome Driver(Firefox Driver的安装与该步骤相同) 链接: http://chromedriver.storage.googleapis.com/index.html ...

  9. Linux操作大全

    系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS ...

  10. Linux之GDB命令(二)

    gdb命令: 前提条件:可执行文件必须包含调试信息 gcc -g gdb 文件名 –启动gdb调试 查看代码命令   当前文件:     list 行号(函数名)   指定文件:     list 文 ...