c#中,如何对两个数组里的元素一一对应?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#中,如何对两个数组里的元素一一对应?相关的知识,希望对你有一定的参考价值。

比如。
str[] a="1","2","3"
str[] b="x","y","z

1对应X,2对应y,3对应z。
当我调用元素1时,对应输出的是x,以此类推。如何对应。
听说要用字典,字典又怎么用呢?

你真实的程序中是否就是用的123,如果是,那根本就不需用到两个数组,直接写
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#中,如何对两个数组里的元素一一对应?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中对数组执行集合减法?

如何将两个数组的元素建立起对应关系

两个数组如何对应相加js

python中如何比较两个数组中对应位置的元素的大小

js数组相加

c#有两个数组,想把这个两组中相同的元素放在另一个数组中