如何取出數(shù)組中符合某種條件的元素,然后放在數(shù)組最前面,即索引為0的位置?
思路大致如下:→找到符合條件的數(shù)組元素,把之賦值給一個(gè)臨時(shí)變量temp,并記下該數(shù)組元素的索引位置,假設(shè)是index→在源數(shù)組中,從索引為0的數(shù)組元素開(kāi)始,拷貝index個(gè)數(shù)組元素到另外一個(gè)目標(biāo)數(shù)組→把臨時(shí)變量temp賦值給目標(biāo)數(shù)組索引為0的位置
<public static class ArrHelper{/// <summary>/// 對(duì)類(lèi)型為T(mén)的數(shù)組進(jìn)行擴(kuò)展,把滿足條件的元素移動(dòng)到數(shù)組的最前面/// </summary>/// <typeparam name="T"></typeparam>/// <param name="arr">源數(shù)組</param>/// <param name="match">lamda表達(dá)式</param>/// <returns></returns>public static bool MoveToFront<T>(this T[] arr, PRedicate<T> match){//如果數(shù)組的長(zhǎng)度為0if (arr.Length == 0){return false;}//獲取滿足條件的數(shù)組元素的索引var index = Array.FindIndex(arr, match);//如果沒(méi)有找到滿足條件的數(shù)組元素if (index == -1){return false;}//把滿足條件的數(shù)組元素賦值給臨時(shí)變量var temp = arr[index];Array.Copy(arr, 0, arr, 1, index);arr[0] = temp;return true;}public static void PrintArray<T>(T[] arr){foreach (var item in arr){Console.Write(item + " ");}Console.WriteLine();}}
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注