应用不同的整数的元组的清单的ITEM2的基础上在c#
问题描述:
我有整数元组的列表应用不同的整数的元组的清单的ITEM2的基础上在c#
List<Tuple<int, int>> list = new List<Tuple<int, int>>();
list.Add(new Tuple<int, int>(1,12));
list.Add(new Tuple<int, int>(1,2));
list.Add(new Tuple<int, int>(1,18));
list.Add(new Tuple<int, int>(1,12));
我想删除ITEM2的冗余值,它是12在这种情况下
更新的列表也应该是List>。 (相同类型),但具有不同的值。类型List>的新元组只应包含以下内容:
list.Add(new Tuple<int, int>(1,2));
list.Add(new Tuple<int, int>(1,18));
list.Add(new Tuple<int, int>(1,12));
任何帮助?
答
如果你只想要独特的数字对这个可以很容易地通过使用Distinct()
来完成:
list = list.Distinct().ToList();
如果你只关心只有项目2删除副本,然后使用GroupBy()
和Select()
的First()
各组:
list = list.GroupBy(x => x.Item2).Select(x => x.First());
我做了一个小提琴here演示两种方法
编辑
从您的最新评论,这听起来像你想使用我提出的第二个方法(的GroupBy项目2和选择各组第一)。
你只关心第二个元组值吗?这意味着,这是你唯一需要区分的唯一一个?或者只重复item1和item2的匹配? – maccettura
因此,这就是我需要这两个值的问题,即我希望同一个类型的元组与值为 – Rimmy
的那个评论没有任何意义。如果你有一个带有(2,12)的Tuple,如果它是你输出的一部分,会发生什么,因为第一个值是唯一的,还是应该排除,因为第二个值是重复的? – maccettura