我知道在删除重复项后,有很多关于在数组中返回唯一值的答案,但是在删除重复项后,数组中的每个元素都不是唯一的吗?我想在删除任何重复项之前只返回唯一的值 . 如果元素在原始数组中重复,我不希望它在我的最终数组中 .
所以这个阵列......
[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();
如果你真的需要这对大输入有效,你可以编写自己的方法来跟踪“具有单个值的元素”和“具有多个值的元素”作为集合 . 我会从这开始:)
您可以使用 GroupBy 方法
GroupBy
var uniqueNumbers = numbers.GroupBy(x => x) .Where(x => x.Count() == 1) .Select(g => g.Key) .ToArray();
这将基本上对所有数字进行分组,然后将那些包含一个数字的组取出 .
2 回答
最简单的方法是使用LINQ,按值分组,计算每个组中元素的数量,然后返回具有单个值的组的键:
如果你真的需要这对大输入有效,你可以编写自己的方法来跟踪“具有单个值的元素”和“具有多个值的元素”作为集合 . 我会从这开始:)
您可以使用
GroupBy
方法这将基本上对所有数字进行分组,然后将那些包含一个数字的组取出 .