C# 查找数组中只出现一次的单词

标签 c# arrays string

我的数组充满了颜色,必须找到在数组中只出现一次的颜色。

string[] colors = {"red","green","white","green","red","red"}

string[] noDupcolors = szinek.Distinct().ToArray(); //the same array without duplicates
            
int num = 0;
int once = 0;
for (int i = 0; i < noDupcolors.Length; i++)
{
    for (int j = 0; j < S; j++)
    {
        if (noDupcolors[i]==colors[j])
        {
            num++;
        }
        if (num == 1)
        {
            once = j;
        }
        else
        {
            nums = 0;
        }
    }
}
Console.WriteLine(colors[once]);

我已经尝试过这个,但由于某种原因它写出绿色。 有人可以帮忙吗?谢谢。

最佳答案

您可以使用 LINQ

var result = colors.GroupBy(x => x)
        .Single(x => x.Count() == 1)
        .Key;

实例:https://dotnetfiddle.net/lBmR7R

请注意,如果数组中有零个或多个单一出现颜色,这将引发异常,您可以使用诸如 FirstFirstOrDefaultSingleOrDefault代替Single

关于C# 查找数组中只出现一次的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70739138/

相关文章:

c# - 比较存储在字符串中的非常大的数字

python - 正确打印完整阵列

java - 从文本文件到ArrayList的稀疏矩阵

Javascript string.split 在冒号字符处并添加换行符

python - 通过字符串引用类名?

c# - Unity Dropdown 从数据库中添加值

c# - 在 C# 中运行时 COPY 命令找不到指定的路径

java - 作业 : Java IO Streaming and String manipulation

c# - 如何正确序列化和反序列化Json中的对象列表?

python - 生成非均匀随机数