gpt4 book ai didi

c# - 从一个队列中删除存在于另一个队列中的元素

转载 作者:太空宇宙 更新时间:2023-11-03 18:46:13 28 4
gpt4 key购买 nike

使用 C#

我有

队列 N:3, 4 9, 11

队列 A:1、2、3、4、8、9、11、12、13

我想删除队列 A 中出现在队列 N 中的所有元素

最后得到队列 R:1、2、8、12、13

我如何在 C# 中执行此操作

尝试使用某人的 API,他们提供了一种获取两个队列的方法,我需要根据返回的一个队列进行过滤。

谢谢,

-赛斯

更新的代码示例:

我正在使用自定义数据类型 ModuleDetails

Queue<ModuleDetails> defaultQueue = apiCallDefault();
Queue<ModuleDetails> modQueue = apiCallAllModules();

最佳答案

使用 LINQ-to-Objects 最简单...

var qN = new Queue<int>(new[]{3, 4, 9, 11});
var qA = new Queue<int>(new[]{1, 2, 3, 4, 8, 9, 11, 12, 13});
var qR = qA.Except(qN);

更新:只要 ModuleDetails 实现了 IEquatable,下面的代码就可以正常工作。如果您无法修改 ModuleDetails,您始终可以提供一个 IEqualityComparer 作为 Except 的第二个参数,它定义了如何确定相等性。

关于c# - 从一个队列中删除存在于另一个队列中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4250910/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com