Reputation: 14260
I want to "sort" (not sure if that's the right terminology) a List
based on an enum value inside the objects, where the List
returned contains multiple List
s, each containing objects with the same enum value.
ex:
class Obj {
public MyEnum EnumVal { get; set; }
}
enum MyEnum {
Val1, Val2, Val3
}
// Input
new List<Obj> {
new Obj { EnumVal = MyEnum.Val1 },
new Obj { EnumVal = MyEnum.Val1 },
new Obj { EnumVal = MyEnum.Val2 },
new Obj { EnumVal = MyEnum.Val3 },
new Obj { EnumVal = MyEnum.Val1 },
new Obj { EnumVal = MyEnum.Val3 },
new Obj { EnumVal = MyEnum.Val2 },
new Obj { EnumVal = MyEnum.Val3 }
}
// Output
new List<List<Obj>> {
new List<Obj>{
new Obj { EnumVal = MyEnum.Val1 },
new Obj { EnumVal = MyEnum.Val1 },
new Obj { EnumVal = MyEnum.Val1 }
},
new List<Obj>{
new Obj { EnumVal = MyEnum.Val2 },
new Obj { EnumVal = MyEnum.Val2 }
},
new List<Obj>{
new Obj { EnumVal = MyEnum.Val3 },
new Obj { EnumVal = MyEnum.Val3 },
new Obj { EnumVal = MyEnum.Val3 }
}
};
I know how to write a function that does this, but is there a way using Linq?
Upvotes: 1
Views: 47