c# - 找不到独特的词

标签 c# string-matching

谁能告诉我我的代码有什么问题? 基本上,在比较 words1words2 之后,我只需要将 words1 中的唯一单词添加到 uniques 列表中. 在 if 语句中,如果我删除 ! 然后它会找到匹配的词(与我需要的相反)

    List<string> Unique(string lines1 ,string lines2,  char[] separators)
    {
        string[] words1 = lines1.Split(separators, StringSplitOptions.RemoveEmptyEntries);
        string[] words2 = lines2.Split(separators, StringSplitOptions.RemoveEmptyEntries);
        List<string> uniques = new List<string>();

        for (int i = 0; i < words1.Length; i++)
        {
            bool match;
            for (int x = 0; x < words2.Length; x++)
            {
                if (!words1[i].Equals(words2[x]))
                {
                    match = true;
                    uniques.Add(words1[i]);
                    break;
                }
                else
                {
                    match = false;
                }
            }
        }

        return uniques;
    }

最佳答案

你可以对你的循环做一些小改动

    for (int i = 0; i < words1.Length; i++)
    {
        bool match=false;
        for (int x = 0; x < words2.Length; x++)
        {
            if (words1[i].Equals(words2[x]))
            {
                match = true;
                break;
            }

        }
        if(!match && uniques.Contains(words1[i]))
        { 
            uniques.Add(words1[i]);
        }
        { 
        uniques.Add(words1[i]);
        }
    }

要使您的代码更短,您可以使用 LINQ

List<string> Unique(string lines1 ,string lines2,  char[] separators)
{    
string[] words1 = lines1.Split(separators, StringSplitOptions.RemoveEmptyEntries);
string[] words2 = lines2.Split(separators, StringSplitOptions.RemoveEmptyEntries);
return words1.Except(words2).ToList();
}

关于c# - 找不到独特的词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53461449/

相关文章:

c# - 保持图像质量

c# - '||' switch 语句中两个枚举之间使用的运算符

c# - 限制非数值运算

字符串匹配的扩展版本算法

string - 检查字符串是否包含子字符串

algorithm - Rabin Karp 算法中的 Spurious Hits 如何等于 O (n/q)?

c# - 如何使来自 Resources.resw 的字符串显示在设计器中?

c# - ASCIIEncoding 在 Windows 8 Store 应用程序中不支持

python - 正则表达式:选择第一个最接近的精确匹配直到结束

lua - 如何提取非固定字符串的数据