C#把数组中的某个元素取出来放到第一个位置

王朝学院·作者佚名  2016-05-17
窄屏简体版  字體: 小  |  中  |  大  |  超大  

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();

}

}

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航