返回唯一值而不删除重复项-C#
本文关键字:-C# 删除 唯一 返回 | 更新日期: 2023-09-27 18:26:08
我知道在删除重复项后返回数组中的唯一值有很多答案,但删除重复项之后数组中的每个元素不是都是唯一的吗?在删除任何重复项之前,我希望只返回唯一的值。如果元素在原始数组中重复,我不希望它出现在我的最终数组中。
所以这个数组。。。
[0, 1, 1, 2, 3, 3, 3, 4]
应仅返回:
[0, 2, 4]
另一种表达方式是删除所有重复项以及所有曾经重复的唯一值。
我来自JavaScript背景,对C#语法仍然有点不稳定。:)
最简单的方法是使用LINQ,按值分组,计算每组中的元素数量,然后返回具有单个值的组的密钥:
var singleOccurrences = array.GroupBy(x => x)
.Where(g => g.Count() == 1)
.Select(g => g.Key)
.ToArray();
如果您真的需要这对大输入有效,那么您可以编写自己的方法,将"具有单个值的元素"answers"具有多个值的元素"作为集合进行跟踪。不过,我还是从这个开始:)
您可以使用GroupBy
方法
var uniqueNumbers = numbers.GroupBy(x => x)
.Where(x => x.Count() == 1)
.Select(g => g.Key)
.ToArray();
这将基本上对所有数字进行分组,然后取其中有一个数字的组。