加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#改进算法

发布时间:2020-12-15 03:42:59 所属栏目:百科 来源:网络整理
导读:我在面试中被问到(C#3.0)提供了从列表中删除项目列表的逻辑. 我回答 int[] items={1,2,3,4}; Listint newList = new Listint() { 1,4,5,56,788,9 };newList.RemoveAll((int i) = { return items.Contains(i); }); 1)采访者回答说,如果项目增长,我所采用的算
我在面试中被问到(C#3.0)提供了从列表中删除项目列表的逻辑.

我回答

int[] items={1,2,3,4}; 
List<int> newList = new List<int>() { 1,4,5,56,788,9 };
newList.RemoveAll((int i) => { return items.Contains(i); });

1)采访者回答说,如果项目增长,我所采用的算法将逐渐消耗时间,并要求我给出更好更快的算法.有效的算法是什么?

2)如何使用LINQ实现相同的使用?

3)他问我为双向关闭提供一个例子? (一般我知道关闭,
什么是双向关闭?我回答说没有这样的术语存在,但他没有
满足).

解决方法

编辑更好的解决方案:使用不对称的 Except,不同于相交.

1& 2:您可以使用Intersect扩展方法来执行此操作.但是,如果您的第二个数组包含第一个数组中未找到的元素,那么这些元素将在生成的列表中:Intersect对称工作.

至于“双向关闭”,我从来没有听说过这个术语,而是怀疑这是一个既定的技术术语.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读