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?这个要如何实现,请教了,谢谢!
展开
 我来答
仙戈雅3n
2018-02-22 · TA获得超过5790个赞
知道大有可为答主
回答量:2398
采纳率:75%
帮助的人:891万
展开全部

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);
 }
百度网友d242235
2018-02-22 · TA获得超过2385个赞
知道大有可为答主
回答量:1403
采纳率:84%
帮助的人:817万
展开全部

用linq扩展方法就好了。

a = a.Where(i=>i<7).ToArray();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式