C#把數組中的某個元素掏出來放到第一個地位的完成辦法。本站提示廣大學習愛好者:(C#把數組中的某個元素掏出來放到第一個地位的完成辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是C#把數組中的某個元素掏出來放到第一個地位的完成辦法正文
本文實例講述了C#把數組中的某個元素掏出來放到第一個地位的完成辦法。分享給年夜家供年夜家參考。詳細剖析以下:
若何掏出數組中相符某種前提的元素,然後放在數組最後面,即索引為0的地位?
思緒年夜致以下:
① 找到相符前提的數組元素,把之賦值給一個暫時變量temp,並記下該數組元素的索引地位,假定是index
② 在源數組中,從索引為0的數組元素開端,拷貝index個數組元素到別的一個目的數組
③ 把暫時變量temp賦值給目的數組索引為0的地位
public static class ArrHelper
{
/// <summary>
/// 對類型為T的數組停止擴大,把知足前提的元素挪動到數組的最後面
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="arr">源數組</param>
/// <param name="match">lamda表達式</param>
/// <returns></returns>
public static bool MoveToFront<T>(this T[] arr, Predicate<T> match)
{
//假如數組的長度為0
if (arr.Length == 0)
{
return false;
}
//獲得知足前提的數組元素的索引
var index = Array.FindIndex(arr, match);
//假如沒有找到知足前提的數組元素
if (index == -1)
{
return false;
}
//把知足前提的數組元素賦值給暫時變量
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();
}
}
以上,是針對泛型數組的擴大,所以可以直接應用數組實例挪用擴大辦法。
class Program
{
static void Main(string[] args)
{
int[] intArr = new int[]{1, 2, 3, 4, 5};
ArrHelper.PrintArray(intArr);
intArr.MoveToFront(i => i == 3);
ArrHelper.PrintArray(intArr);
Console.ReadKey();
}
}
願望本文所述對年夜家的C#法式設計有所贊助。