- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
如果是,那是什么?
编辑:回应以下评论:
var tabulatedOutputErrors = from error in outputErrors
group error by error into errorGroup
select new { error = errorGroup.Key, number = errorGroup.Count() };
var tabulatedInputErrors = from error in inputErrors
group error by error into errorGroup
select new { error = errorGroup.Key, number = errorGroup.Count() };
var problems = tabulatedOutputErrors.Except(tabulatedInputErrors);
如果需要,您可以扩展计数。
最佳答案
LINQ 有 Enumerable.Except
扩展方法,这似乎是您要找的。
例子:
var list1 = new int[] {1, 3, 5, 7, 9};
var list2 = new int[] {1, 1, 5, 5, 5, 9};
var result = list1.Except(list2); // result = {3, 7}
从 .NET 3.5 开始,还存在 HashSet<T>
类(以及 .NET 4.0 中类似的 SortedSet<T>
类。此类(或者说 .NET 4.0 中的 ISet<T>
接口(interface))有一个 ExceptWith
方法也可以完成这项工作。
例子:
var set1 = new HashSet<int>() {1, 3, 5, 7, 9};
var set2 = new HashSet<int>() {1, 1, 5, 5, 5, 9};
set1.ExceptWith(set2); // set1 = {3, 7}
当然,这种方法是否更可取取决于上下文/用法。在大多数情况下,效率优势(就地执行差异操作并使用哈希码)可能可以忽略不计。无论哪种方式,请选择。 :)
关于c# - 是否有与 C++ 的 std::set_difference 等效的 C#?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3196341/
我试图找出以下两组之间的区别: A = {(0,0), (0,1), (1,0), (1,1), (2,2)} B = {(0,0), (0,1), (1,0), (1,1)} 我期待的答案是 A -
在任务中有人说有必要从数组中获取最大元素的“值”。然后将它与第二个数组进行比较,并排除重复项。 任务中需要在vector中使用partial_sort_copy,以及set_difference。 问
set_difference算法需要以下内容 The elements in the ranges shall already be ordered according to this same cr
我想问一下是否可以提供一个示例,说明如何使用 set_difference 找出 map 的集合和键之间的区别 我知道另一个问题std::set_difference is it possible t
我对 中的 set_differences 函数有一个奇怪的问题 header 。我试图逐行读取两个文本文件,并将每一行放入相应的集合中。由于某种原因,set-difference 没有检测到两组之
std::set tradedSymbolSet; //.. // tradedSymbols is filled //.. std::set symbols; //... // symbols is
所以我们得到了一组新的字符串,我们有一个作为映射键。我们想用一种方式 set_difference(注意 - 不是 set_symmetric_difference)。所以目前我有这样丑陋的代码:
我正在尝试调用 set_difference 函数,并将结果放在 std::list 中。理论上,可以在任何排序的容器上执行此操作,对吧? list v; list l1; list
我想知道标准库中是否有任何工具可以同时计算两个排序范围之间的交集和差集。带有以下签名的东西: template Output3 decompose_sets (Input1 first1, Inpu
我实现了 set_union、set_intersection 和 set_difference 的版本,它们接受一个排序的容器和一个排序的范围(不能在容器内), 并将运算结果写入容器。 templa
目前我正在获取两个 map 的集合差异,然后遍历生成的 map 。 理想情况下,我想创建一个差异 vector 而不是 map 。这样我可以更有效地进行迭代。 typedef std::map Reg
以下是STL algorithm的几个函数,使用的条件是有序容器,所以 vector在被sort了之后是可以使用的,set也是可以使用的。 set_difference 这个是求得在第一个容器中有
我在从 set_difference() 获得预期结果时遇到了一些问题.我以为我正在比较两个动态数组,但我不确定差距在哪里。我唯一的额外见解是,当我使用 gettype() 比较两个数组时函数,我得到
我试图找到两个 vector 的集合差异,所以我做了这样的事情: std::vector first_vec, second_vec, difference_vec; // populate firs
如果是,那是什么? 编辑:回应以下评论: var tabulatedOutputErrors = from error in outputErrors
我们能否像STL中的set_intersection和set_difference一样实现multimap_intersection或multimap_difference函数? 最佳答案 这个问题很
我有如下代码: typedef std::set set_of_strings; set_of_strings s1, s2, result1; some_func()
我是一名优秀的程序员,十分优秀!