按标准对对象进行分组

时间:2015-12-18 14:27:04

标签: c#

我有一组对象,每个对象包含两个日期。我想通过这两个日期的独特组合对它们进行排序。然后我想在每个对象中设置一个变量来表示它属于哪个组。

就像一组日期是A组,另一组是B组等。

我想知道是否有一种简单的方法可以做到这一点。

2 个答案:

答案 0 :(得分:0)

以下是您可以按两个字段进行分组的方法:

var groups = collection.GroupBy(i => new { i.DateTime1, i.DateTime2 }, i => i);

在对元素进行分组后,您可以设置“组变量”:

foreach (var group in groups)
{
    foreach (var item in group)
    {
        item.Group = $"Group {group.Key.DateTime1}+{group.Key.DateTime2}";
    }
}

答案 1 :(得分:0)

这个问题真的很模糊。但是你总是可以创建一个具有两个日期成员和一个表示组类型的枚举的类。

public class DateHolder
{
    public enum DHGroups { A, B }

    public DHGroups Group { get; set; }
    public DateTime Date1 { get; set; }
    public DateTime Date2 { get; set; }

    public void SetGroup()
    {
        // Work with Date1 and Date2 to determine the Group
    }
}