c# - 如何通过该嵌套列表对具有 List<string> 属性的 List<T> 进行分组?

标签 c# linq group-by

我有一个包含 List<string> 的自定义数据类型.

我想分组 ListCustomDataType通过那个嵌套 List<string> .

我试过以下方法

 compoundSchedules.GroupBy(a => a.Timepoints);

在哪里Timepoints是以字符串表示的日期列表。哪里有CustomDataType s 具有相同的时间点,我希望将它们组合在一起。 使用上面的代码,它不会对它们进行分组,而只是重复 ListCustomDataType其时间点列表为 IGrouping Key .

谢谢。

最佳答案

您应该创建一个 IEqualityComparer<List<string>>检查列表是否具有相同的长度和内容,并使用 Enumerable.GroupBy 的重载:

compoundSchedules.GroupBy(a => a.Timepoints, myComparer);

或者创建您自己的类作为时间点列表,并让它实现 GetHashCodeEquals (和/或实现 IEquatable<T> ),由 default comparer 使用.

关于c# - 如何通过该嵌套列表对具有 List<string> 属性的 List<T> 进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11398320/

相关文章:

c# - 为使用查询字符串的 linq 中的 where 语句提供默认值

c# - 强制linq执行内连接

php - 如何根据第三列中的值并按第四列分组来获得两列的总和?

c# - 我可以在没有 Visual Studio .net 的情况下用 C# 创建 Web 服务吗

c# - XmlReader 的行为与换行符不同

c# - 如何使用 itextsharp 从表结构的 PDF 中读取数据?

Mysql使用group by计算不同列

c# - System.Drawing.Image.FromStream 参数无效

c# - 添加到 CHAR 列末尾的一系列空格

c# - 我如何对 List<int> 进行分组并返回 List<int>