作者Deadshot465 (十三)
看板C_Sharp
标题Re: [问题] 如何在阵列中找重复的element?
时间Sun Nov 21 03:18:06 2010
其实可以写一个method就完成的
并且透过dynamic的使用 基本上从一维到多维阵列都可以通吃
但有监於一般最多只会使用到三维阵列
且三维阵列就相当复杂了XD
所以小弟这边写的方法只涵盖了一维到三维阵列的部分
http://nopaste.csie.org/b3772
有写上注解:p
程式预设是直接Console.WriteLine输出找到的索引值
并且程式码最前面是一个可当作范例使用的2x3x4三维阵列
原po可以视需要将Console.WriteLine改成其他方式呈现:p
有两个重点如下:
1.这个方法所接收的参数是dynamic array
不可以是var 也不可以是泛型 也不可以是object
dynamic的资料型别与一般的差别最大在於dynamic是在执行阶段才决定资料型别的
所以这个方法才可以无论一维 二维 三维阵列皆可接收
2.当多维阵列Cast成有实作IList<T>(表示可透过索引进行存取)
与IEnumerable<T>介面的泛型集合时
阵列中元素的索引会从多维→一维填入集合
即假设有个阵列是[2, 2] 各元素的索引为[0, 0] [0, 1] [1, 0] [1, 1]
则当Cast成List<T>时
位於[0, 0]元素的新索引会是[0]
[0, 1]→[1]
[1, 0]→[2]
[1, 1]→[3]
参考看看吧:)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 58.115.97.252
※ 编辑: Deadshot465 来自: 58.115.97.252 (11/21 03:26)