[問題] 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