2017-10-11 15 views
-1

我有整数元组的列表应用不同的整数的元组的清单的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)); 

任何帮助?

+1

你只关心第二个元组值吗?这意味着,这是你唯一需要区分的唯一一个?或者只重复item1和item2的匹配? – maccettura

+0

因此,这就是我需要这两个值的问题,即我希望同一个类型的元组与值为 – Rimmy

+0

的那个评论没有任何意义。如果你有一个带有(2,12)的Tuple,如果它是你输出的一部分,会发生什么,因为第一个值是唯一的,还是应该排除,因为第二个值是重复的? – maccettura

回答

0

如果你只想要独特的数字对这个可以很容易地通过使用Distinct()来完成:

list = list.Distinct().ToList(); 

如果你只关心只有项目2删除副本,然后使用GroupBy()Select()First()各组:

list = list.GroupBy(x => x.Item2).Select(x => x.First()); 

我做了一个小提琴here演示两种方法

编辑

从您的最新评论,这听起来像你想使用我提出的第二个方法(的GroupBy项目2和选择各组第一)。

相关问题