编 辑 新 闻
新闻类型:
编程天地
编程天地
摄影天地
海贝官方
文学
电脑技术
创业天地
旅游天地
健康生活
游戏动漫
法律法规
商品欣赏
汽车世界
净化工程
asp.net
JQ与JS
APP
asp.net
系统
数据库
UI
JAVA
新闻主题:
 
搜索
 
前台
商品编号:
发 表 人:
关键字:
用空格隔开
新闻内容:
(小于1200字时 <br 分页)
<p data-first-child="" data-pid="STgUbW48">最近小编同事面试遇到了一道面试题,题目是有个int数组,把输入包含的指定元素删除。这道题主要考察C#基础知识和编码动手能力。小编将以如下几种方法实现,供大家参考。(注:文末还有扩展问题。)</p><p data-pid="S5boGHPP"><strong>1、使用临时数组copy后替换</strong></p><p data-pid="TbfCIWWq">这种方法涉及创建一个比原始数组小一个元素的新数组。然后,将原始数组复制到新数组中,但不包括要删除的元素。最后,将新数组分配给原始数组。示例如下:</p><p class="ztext-empty-paragraph"><br/></p><pre>int[] numbers = { 1, 2, 3, 4, 5, 6 }; //移除的元素 int valueToRemove = 5; //新建一个数组,长度为操作数组的长度-1 int[] newNumbers = new int[numbers.Length - 1]; int index = 0; for (int i = 0; i < numbers.Length; i++) { if (numbers[i] != valueToRemove) { newNumbers[index] = numbers[i]; index++; } } numbers = newNumbers; Console.WriteLine(String.Join(",", numbers )); //结果为:1 2 3 4 6</pre><p data-pid="WZ5GVokB"><strong>2、使用LINQ的Where和ToArray方法</strong></p><p data-pid="PRmlmkMB">另一种使用LINQ的方法是使用Where方法来过滤出不包含要删除元素的序列,然后使用ToArray方法将序列转换回数组。这种方法的优点是它更简洁,但在处理大型数据集时可能会比第一个方法慢。示例如下:</p><p class="ztext-empty-paragraph"><br/></p><pre>int[] numbers = { 1, 3, 4, 5, 4, 2 }; //移除的元素 int valueToRemove = 5; numbers = numbers.Where(val => val != valueToRemove).ToArray() Console.WriteLine(String.Join(",", numbers)); //结果:1 3 5 2</pre><p data-pid="y4o5LuoV"><strong>3、使用LINQ的Array.FindAll() 方法</strong></p><p data-pid="Zx9uM9lN">Array.FindAll() 方法返回一个数组,其中包含与指定谓词匹配的所有元素。以下是演示此方法用法的简单示例:</p><p class="ztext-empty-paragraph"><br/></p><pre>int[] array = { 1, 3, 4, 5, 4, 2 }; int valueToRemove = 4; array = Array.FindAll(array, i => i != valueToRemove).ToArray(); Console.WriteLine(String.Join(",", array)); //结果:1 3 5 2</pre><p data-pid="EFNu0mY2"><strong>4、使用LINQ的Enumerable.Except() 方法 </strong></p><p data-pid="tNBuJ-tI">另一种解决方案是使用 Enumerable.Except() 方法,它比较两个序列并返回仅出现在第一个序列中的元素。该方法演示如下:</p><p class="ztext-empty-paragraph"><br/></p><pre>int[] array = { 1, 3, 4, 5, 4, 2 }; int item = 4; array = array.Except(new int[] { item }).ToArray(); Console.WriteLine(String.Join(",", array)); //结果:1 3 5 2</pre><p data-pid="u9ADNEek"><strong>5、使用List类的RemoveAll方法</strong></p><p data-pid="lzF6phVl">这种方法涉及使用泛型List类而不是数组。List类提供了一种方便的方法来删除符合给定条件的所有元素。示例如下:</p><p class="ztext-empty-paragraph"><br/></p><pre>List<int> numbers = new List<int> {1, 3, 4, 5, 4, 2 }; int valueToRemove = 4; numbers.RemoveAll(x => x == valueToRemove); Console.WriteLine(String.Join(",", numbers)); //结果:1 3 5 2</pre><p data-pid="wHMHD0ld"><strong>扩展</strong></p><p data-pid="xGVEM-Ci">小编的同事又说了另一个问题,面试官说“输入的元素在数组里有重复,只删除一个元素”怎么实现。这种实现其实只需要找到第一个数字的索引,根据索引来删除这个数字。实现原理只需要改动上面第5个方法。示例如下:</p><p class="ztext-empty-paragraph"><br/></p><pre>List<int> nums= new List<int> {1, 3, 4, 5, 4, 2 }; int item= 4; nums.RemoveAt(nums.IndexOf(item)); Console.WriteLine(String.Join(",", nums)); //结果:1 3 5 4 2</pre><p data-pid="DKqR0xq5"><strong>结语</strong></p><p data-pid="d5y4TYzD">本文讲述了从C#中的数组中删除指定元素的5种方法,这种题一般会出现在初级程序员面试中,主要考察C#基础和编码动手能力,大家任意用一种方法实现即可,如果强调不能用函数,可以使用第一种方法。希望本文对你有所帮助,同时欢迎留言和吐槽。</p><p><br/></p>
操作:
跳过导航链接。
净化工程
洁净室
汽车世界
安全常识
汽车养护
品牌欣赏
商品欣赏
商品评测
高逼格
商品对比
法律法规
法律法规
民生政策
游戏动漫
动漫天地
游戏欣赏
Flash游戏
健康生活
杂文
职务分类
便民服务
影视天地
教育
生活常识
饮食文化
偏方药方
养生之道
圣经领悟
开心一笑
品牌黑白帮
妇婴
旅游天地
购物天堂
中国村镇
旅游景点
旅游咨询
创业天地
创业故事
公司管理
创业项目
工作技巧
展会
资料
电脑技术
维修
电脑知识
文学
人间万象
历史
古诗词
人生感悟
海贝官方
商品欣赏
招标信息
海贝新闻
招聘专栏
关于我们
行情动态
海贝娱乐
海贝项目
会员礼品
商品报价
特惠信息
摄影天地
古风古韵
花鸟鱼虫
秀美山河
静物拍摄
风土人情
节日祝福
城市风光
美女摄影
编程天地
JAVA
UI
数据库
系统
asp.net
APP
JQ与JS