c# - 在 C# 中获取不同整数集的最佳方法

标签 c# list multidimensional-array

我想将一组两个整数值添加到列表/数组中,并将它们排序为不同的组。

例如:- { {2,3},{2,3},{5,10},{5,2} } 应变为 { {2,3}, {5,10},{5,2} }
使用数组或列表的最佳方法是什么?

最佳答案

假设您确实只想获取所有不同的项目,最简单的方法是使用 Tuple<int,int> 列表然后使用 IEnumerable.Distinct()删除重复项。

例如:

var data = new List<Tuple<int, int>>
{
    Tuple.Create(2, 3),
    Tuple.Create(2, 3),
    Tuple.Create(5, 10),
    Tuple.Create(5, 2)
};

var distinct = data.Distinct().ToList();

foreach (var tuple in distinct)
    Console.WriteLine(tuple);

这不会执行任何排序,但如果您想对结果进行排序,可以使用 OrderBy()选择要订购的元素:

var distinct = data.Distinct().OrderBy(item => item.Item1).ToList();

这将按每对的第一个元素排序(因为指定了 Item1)。

关于c# - 在 C# 中获取不同整数集的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41595576/

相关文章:

java - toArray(T[] a) 和 toArray() 之间的区别

php - 如何使用php计算多维数组中有多少个同名数组?

c# - 错误 : 'Subscript indices must either be real positive integers or logicals' when using Matlab . NET 生成器

c# - 在这两种链式扩展方法中,是否有理由优先使用其中一种?

performance - 如何通过id快速查找sharepoint文档库?

c# - FindAll 搜索问题

java - 获取二维数组中某列的最小值

java - java中的第六维字符串数组

c# - 防止并行操作按顺序批处理执行

c# - 如何在没有 "process has exited"异常的情况下终止进程?