使用C#
我有
队列N:3,4,9,11
队列A:1,2,3,4,8,9,11,12,13
我想删除Queue N中存在的队列A中的所有元素
最后得到队列R:1,2,8,12,13
我怎么在C#中这样做
尝试使用someones API,它们提供了获取两个队列的方法,我需要根据返回的一个队列进行过滤.
谢谢,
-Seth
更新的代码示例:
我正在使用自定义数据类型ModuleDetails
Queue<ModuleDetails> defaultQueue = apiCallDefault();
Queue<ModuleDetails> modQueue = apiCallAllModules();
Run Code Online (Sandbox Code Playgroud)
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);
Run Code Online (Sandbox Code Playgroud)
更新:只要ModuleDetails实现IEquatable,下面的代码就可以了.如果无法修改ModuleDetails,则可以始终提供IEqualityComparer作为Except的第二个参数,它定义了如何确定相等性.
归档时间: |
|
查看次数: |
2060 次 |
最近记录: |