【发布时间】:2019-10-01 15:56:51
【问题描述】:
因此,在 c# 中,我尝试对对象列表进行排序,以便获得每个唯一组合,并计算它们在列表中出现的频率。
我的这份清单如下:
List<Numbers> nums = new List<Numbers>();
public class Numbers
{
public int numOne { get; set; }
public int numTwo { get; set; }
}
nums.Add(new Numbers { numOne = 1, numTwo = 2});
nums.Add(new Numbers { numOne = 4, numTwo = 7});
nums.Add(new Numbers { numOne = 1, numTwo = 2});
现在我想实现一个基本过滤“nums”列表的新列表,以便获得以下结果:
1 | 2 --> 2
4 | 7 --> 1
我一直在尝试使用 linq,但我似乎找不到达到预期结果的正确方法。
【问题讨论】:
-
“我一直在试验 linq” 你能告诉我们你到目前为止做了什么吗?
-
检查这个docs.microsoft.com/en-us/dotnet/api/… 我引用“如果你想从一些自定义数据类型的对象序列中返回不同的元素,你必须在类中实现 IEquatable
通用接口。以下代码示例展示了如何在自定义数据类型中实现此接口" -
可以使用linqGroupBy方法
-
如果你添加这个会是什么预期结果:
nums.Add(new Numbers { numOne = 7, numTwo = 1}); -
@AleksAndreev 实现
IEquatable随着编码的进步会更有帮助,迟早会证明更好。