C# 如何获得两个字符串列表的非相交部分?

C# 如何获得两个字符串列表的非相交部分?,c#,C#,我有两个字符串列表,下面用逗号分隔。如何获得交叉点的倒数,即仅在一个或另一个列表中但不在两个列表中的所有项目 例如: string test1 = "word1,word2,word3,word4"; string test2 = "word2,word4"; 在本例中,我正在查找word1和word3,因为它们都只出现在一个列表中。您可以使用foreach循环并检查字符串值是否出现在另一个列表中;差不多 string test1 = "word1,word2,word3,word4"; st

我有两个字符串列表,下面用逗号分隔。如何获得交叉点的倒数,即仅在一个或另一个列表中但不在两个列表中的所有项目

例如:

string test1 = "word1,word2,word3,word4";
string test2 = "word2,word4";
在本例中,我正在查找word1和word3,因为它们都只出现在一个列表中。

您可以使用foreach循环并检查字符串值是否出现在另一个列表中;差不多

string test1 = "word1,word2,word3,word4";
string test2 = "word2,word4";
var result = string.Join(",", test1.Split(',').Except(test2.Split(',')));
        string[] test1 = "word1,word2,word3,word4".Split(',');
        string[] test2 = "word2,word4".Split(',');

        foreach (var item in test1)
        {
            if (!test2.Contains(item))
                Console.WriteLine(item);
        }

请定义此差异操作。我需要找出word1、word3与test1中的不匹配。如果test2还包含唯一元素,我认为这不起作用。我建议这样做:var result=string.Join、、test1+、+test2.Split'、'.GroupByw=>w.Wheregroup=>group.Count==1.Selectgroup=>group.Key;只有当我们可以预期差异是由逗号分隔的单词时,这才有效,但由于OP不清楚,我打算自己提出这一点,干得好。@TheNewGuyOnTheRock是你所能说的一切,这不起作用吗?这当然有效。只需复制并粘贴上面的代码并进行测试。如果您有其他条件,或编译时错误或运行时异常,请将它们包含在您的帖子中。请参阅“是否可以更改代码段,使其输出到同一行而不是每个单词的一行?”@乔菲job@TheNewGuyOnTheRock这听起来像是你要他为你写代码you@TheNewGuyOnTheRock
public static void test()
    {
        string test1 = "word1,word2,word3,word4";
        string test2 = "word2,word4";

        List<string> test1list = test1.Split(',').ToList();
        List<string> test2Lists = test2.Split(',').ToList();
        List<string> result = new List<string>();

        foreach (var item in test1list)
        {
            if (!test2Lists.Contains(item))
            {
                if (result.Any())
                {
                    result.Add(","  +item );
                }
                else
                {
                    result.Add(item);
                }

            }
        }

        result.ForEach(p => Console.Write(p));
        Console.ReadLine();
    }