例如,我有一个数组
using (var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse())
using (var responseStream = httpResponse.GetResponseStream())
using (var fileStream = File.Create(Path.Combine(Environment.CurrentDirectory, "label.pdf")))
{
responseStream.CopyTo(fileStream);
}
数组b
Array[Int] = Array(1, 1, 2, 2, 3)
我想计算仅在a或b中显示的元素数。在这种情况下,它是(1,1,4,5),所以计数是4。
我尝试了diff,union,intersect,但是我找不到它们的组合来获得想要的结果。
答案 0 :(得分:5)
我认为您可以尝试类似的方法,但这不是一个好方法,仍然可以解决问题。
a.filterNot(b contains).size + b.filterNot(a contains).size
答案 1 :(得分:3)
与其他答案相同,但时间线性:
a.iterator.filterNot(b.toSet).size + b.iterator.filterNot(a.toSet).size
({.iterator
避免创建中间集合)