C#把數(shù)組中的某個元素取出來放到第一個位置的實現(xiàn)方法
本文實例講述了C#把數(shù)組中的某個元素取出來放到第一個位置的實現(xiàn)方法。分享給大家供大家參考。具體分析如下:
如何取出數(shù)組中符合某種條件的元素,然后放在數(shù)組最前面,即索引為0的位置?
思路大致如下:
① 找到符合條件的數(shù)組元素,把之賦值給一個臨時變量temp,并記下該數(shù)組元素的索引位置,假設(shè)是index
② 在源數(shù)組中,從索引為0的數(shù)組元素開始,拷貝index個數(shù)組元素到另外一個目標(biāo)數(shù)組
③ 把臨時變量temp賦值給目標(biāo)數(shù)組索引為0的位置
{
/// <summary>
/// 對類型為T的數(shù)組進(jìn)行擴展,把滿足條件的元素移動到數(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ù)組的長度為0
if (arr.Length == 0)
{
return false;
}
//獲取滿足條件的數(shù)組元素的索引
var index = Array.FindIndex(arr, match);
//如果沒有找到滿足條件的數(shù)組元素
if (index == -1)
{
return false;
}
//把滿足條件的數(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();
}
}
以上,是針對泛型數(shù)組的擴展,所以可以直接使用數(shù)組實例調(diào)用擴展方法。
{
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#程序設(shè)計有所幫助。
相關(guān)文章
Unity shader實現(xiàn)多光源漫反射以及陰影
這篇文章主要為大家詳細(xì)介紹了shader實現(xiàn)多光源漫反射以及陰影,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-07-07WinForm使用正則表達(dá)式提取內(nèi)容的方法示例
這篇文章主要介紹了WinForm使用正則表達(dá)式提取內(nèi)容的方法,結(jié)合實例形式分析了WinForm基于正則匹配獲取指定內(nèi)容的相關(guān)操作技巧,需要的朋友可以參考下2017-05-05