C# 比较两个队列并查找两个队列中都不存在的元素

C# 比较两个队列并查找两个队列中都不存在的元素,c#,queue,C#,Queue,我目前正在尝试比较两个队列。队列中的大多数条目将是重复的(两个队列将具有相同的条目)。我希望能够做的是,找到两个队列中都不存在的条目 例如,假设以下是有问题的2个队列 1st queue - A S D F G 2nd queue - S A D G Q 两个队列中都存在条目A、S、D、G。但是,条目F对于第一个队列是唯一的,而Q对于第二个队列是唯一的。我希望能够找出哪些条目是唯一的。有这样的函数吗 为了回答这个问题,我需要使用队列,因为FIFO行为至关重要。将打印与控制台窗口不匹配的元素。也

我目前正在尝试比较两个队列。队列中的大多数条目将是重复的(两个队列将具有相同的条目)。我希望能够做的是,找到两个队列中都不存在的条目

例如,假设以下是有问题的2个队列

1st queue - A S D F G
2nd queue - S A D G Q
两个队列中都存在条目A、S、D、G。但是,条目F对于第一个队列是唯一的,而Q对于第二个队列是唯一的。我希望能够找出哪些条目是唯一的。有这样的函数吗


为了回答这个问题,我需要使用队列,因为FIFO行为至关重要。

将打印与控制台窗口不匹配的元素。也可以将它们保存到列表或数组中

var firstQueue = new  Queue<char>() {};
var secondQueue = new Queue<char>() {};

foreach (char obj in firstQueue)
{
    if (!secondQueue.Contains(obj))
    {
        // Doesn't exist in the second queue -> Do something
    }
}
using System;
using System.Collections;
using System.Collections.Generic;


public class QueueDemo
{
    public static void Main(String[] args)
    {
        List<char> list1 = new List<char>{'A', 'S', 'D', 'F', 'G' };
        Queue<char> Q1 = new Queue<char>(list1);

        List<char> list2 = new List<char>{'S', 'A', 'D', 'G', 'Q' };
        Queue<char> Q2 = new Queue<char>(list2);

        foreach (char e in Q1)
        {
            if (!Q2.Contains(e))
            {
                Console.WriteLine(e);
            }
        }

        foreach (char e in Q2)
        {
            if (!Q1.Contains(e))
            {
                Console.WriteLine(e);
            }
        }

    }
}
使用系统;
使用系统集合;
使用System.Collections.Generic;
公共类队列演示
{
公共静态void Main(字符串[]args)
{
List list1=新列表{'A','S','D','F','G'};
队列Q1=新队列(列表1);
List list2=新列表{'S','A','D','G','Q'};
队列Q2=新队列(列表2);
foreach(Q1中的字符e)
{
如果(!Q2.包含(e))
{
控制台写入线(e);
}
}
foreach(第二季度中的字符e)
{
如果(!Q1.包含(e))
{
控制台写入线(e);
}
}
}
}

在第一个队列上循环,并使用contains()检查第二个队列中是否存在当前值,问题类似于:和@dwnenr因为我的答案比较了两个队列,并找到了两个队列中都不存在的元素,我想如果您愿意接受答案,对未来的读者会更有用:)
using System;
using System.Collections;
using System.Collections.Generic;


public class QueueDemo
{
    public static void Main(String[] args)
    {
        List<char> list1 = new List<char>{'A', 'S', 'D', 'F', 'G' };
        Queue<char> Q1 = new Queue<char>(list1);

        List<char> list2 = new List<char>{'S', 'A', 'D', 'G', 'Q' };
        Queue<char> Q2 = new Queue<char>(list2);

        foreach (char e in Q1)
        {
            if (!Q2.Contains(e))
            {
                Console.WriteLine(e);
            }
        }

        foreach (char e in Q2)
        {
            if (!Q1.Contains(e))
            {
                Console.WriteLine(e);
            }
        }

    }
}