显示两个数组中的非匹配值

时间:2017-02-28 18:11:50

标签: c# arrays visual-studio

如何将ListBox那些没有来自每个数组的项目放入(200,400,600,700,800)的集合中?

例如:

  

第一个数组= 100 500

     

第二阵列= 100 200 300 400 500 600 700 800

现在,如何将这些不匹配的值ListBox显示到 let seccionesEntidad = try self.contexto?.fetch(peticion!)! as! [SeccionesEntidad]

4 个答案:

答案 0 :(得分:4)

您可以使用LINQ和Except方法:

int[] result = secondArray.Except(firstArray).ToArray();
yourListBox.DataSource = result;

另外,如果您想在firstArray中包含不在secondArray中的值,请使用以下查询:

var result = firstArray.Except(secondArray).Union(secondArray.Except(firstArray)).ToArray();

答案 1 :(得分:1)

HashSet<int>可以轻松完成这样的设置操作。去看看docs on that class,我相信你会得到答案。我相信你会对方法SymmetricExceptWith

感兴趣

答案 2 :(得分:1)

可能不是最有效的,但你可以做到

var firstArray = new int[2] {100,500};
var secondArray = new int[8] {100,200,300,400,500,600,700,800};

var x = secondArray.Except(firstArray);

foreach(var item in x)
    Console.WriteLine(item);

答案 3 :(得分:0)

这或多或少是Get the symmetric difference from generic lists的副本。

  

var difference = listA.Except(listB).Union(listB.Except(listA));