c#中,如何对两个数组里的元素一一对应?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#中,如何对两个数组里的元素一一对应?相关的知识,希望对你有一定的参考价值。
比如。
str[] a="1","2","3"
str[] b="x","y","z
1对应X,2对应y,3对应z。
当我调用元素1时,对应输出的是x,以此类推。如何对应。
听说要用字典,字典又怎么用呢?
string[] b="","x","y","z";
之后b[1]即"x",b[2]即y,b[3]即z
如果1.2.3以及x.y.z仅是你的举例,实际是没有任何规律的,那用字典是快一些,比如说
Dictionary<string, string> dic = new Dictionary<string, string>();
dic.Add("1", "x");
dic.Add("2", "y");
dic.Add("3", "z");
之后用dic["1"]即可取到"x" 参考技术A 你这样也有方法实现,但不是很合理,效率也不高。字典如下:
先 using System.Collections.Generic;
定义:
Dictionary<int, string> dic = new Dictionary<int, string>();
添加对:
dic.Add(1, "X");
dic.Add(2, "Y");
使用:
string s = dic[1];//=X
string ss = dic[2];//=Y
望采纳! 参考技术B Dictionary<int, string> dc = new Dictionary<int, string>();
dc.Add(1, "x");
dc.Add(2, "y");
dc.Add(3, "z");
用字典一一为对应起来就好了 参考技术C 。。。。一一对应的话,那么索引也应该一样了。。
这样的话,你输出 a[1] 对面对应输出也b[1]就行了。
这种没必要特殊对应。
C#数组的笔记
Array.Copy的笔记:
1、将值类型的元素装箱位引用类型的元素,比如讲一个Int32[]的元素复制到Object[]中
2、将引用类型的元素拆箱为值类型的元素
3、加宽CLR基元值类型,比如讲一个Int32[]的元素复制到一个Double[]中。
4、在两个数组之间复制是,如果仅从数组类型证明不了两者的兼容性,比如从Object[]转型为IFormattable[],根据需要对元素进行向下类型转换。如果Object[]中的每一个对象都实现了IFormattable,Copy方法就能成功执行。
如果只是需要把数组中的某些元素复制到另一个数组,可以选择System.Buffer的BlockCopy方法,它的执行速度比Array的Copy方法快。
所有数组都隐式派生自System.Array。
所有数组痘印是实现IEnumerable,Icollection和IList:因为这些接口将所有元素都视为System.Object,然而,最好是让System.Array都实现这些接口的泛型形式,提供更好的编译时类型安全性和更好的性能。
不过,因为涉及多维数组和非0基数组的问题,CLR团队不希望System.Array实现IEnumerable<T>,ICollection<T>和IList<T>。同时还会维数组类型的所有基类型实现这三个接口,只要他们是引用类型。一下层次结构图对此进行了澄清:
Object
Array
Object[]
Stream[]
FileStream[]
所以,如果你执行以下代码:
FileStream[]fsArray
CLR创建FileStream[]类型时,会自动为这个类型实现IEnumerable<Stream>,IEnumerable<Object>,ICollection<Object>,IList<Stream>和IList<Object>。
以上是关于c#中,如何对两个数组里的元素一一对应?的主要内容,如果未能解决你的问题,请参考以下文章