c# 怎么把数组中的一部分元素提取出来后重新赋给原来的额数组?
例如int[]a=newint[]{1,2,3,4,5,6,7,8,9,10};现在提取a中小于7的元素{1,2,3,4,5,6}想重新赋给数组a怎么实现?原来的a的长度...
例如int[]a=new int[]{1,2,3,4,5,6,7,8,9,10}; 现在提取a中小于7的元素{1,2,3,4,5,6}想重新赋给数组a怎么实现?
原来的a的长度是10,现在的长度是6?这个要如何实现,请教了,谢谢! 展开
原来的a的长度是10,现在的长度是6?这个要如何实现,请教了,谢谢! 展开
展开全部
OK,算法如下:
static void Main(){
int[] a = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
Resize<int>(ref a, x => x < 7);
}
static void Resize<T>(ref T[] source, Predicate<T> predicate){
if (source == null || predicate == null)
throw new ArgumentNullException("source");
ICollection<T> result = new List<T>();
foreach (var item in source){
if (predicate(item)) result.Add(item);
}
Array.Resize<T>(ref source, result.Count);
result.ToArray<T>().CopyTo(source, 0);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询