[问题] Array 运算?

楼主: abc95007 (别理我)   2020-04-11 23:17:45
三个问题, 我知道用 for 循环都可以做到, 但 C# 内是否有简洁的写法?
(被python惯坏了)
1. 试问二维array 如何将其中一维指定给一维Array?
byte[,] array1 = new byte[2, 5];
byte[] array2 = new byte[5];
array2 = array1[0];
2. 如何将 array 与其他 bool array 做运算?
byte[] array1 = new byte[1,2,3,4,5];
bool[] array2 = new byte[false, false, true, true, true];
能否直接得到 var array3 = [3,4,5]; // 大概是这样
3. Linq 是否可做到排序好资料的特定位置
用一般写法很简单,只是最近在开始练习Linq 想说是否有可能
例如1到100排序好array,取第10个与第90个,Linq该如何写
谢谢
作者: a0960330 (ViperLiu)   2020-04-12 09:42:00
第一题不是二维的阵列吧,二维阵列是[][][,]跟[][]是不一样的搞错了XD二维阵列是[,]没错,但要达成第一题的条件,可以用[][]去实现吧
作者: landlord (91)   2020-04-13 00:05:00
3. ElementAt()
作者: Litfal (Litfal)   2020-04-13 20:06:00
2. Enumerable.Range(0,arrays.Length).Where(i => array2[i]).Select(i => array1[i]).ToArray()是说这样写还不如用for写。用手机打code好累3当然是Array.Sort()之后再index1.的话Jagged Array轻松解决,Multidimensional Arrays的最后一个维度可以用Buffer.BlockCopy稍微加速,不然就只能用第二题的写法了然后Linq不要乱用,不然效能会很差,例如第三题就是个例子

Links booklink

Contact Us: admin [ a t ] ucptt.com