Возможно ли GroupBy в LINQ, используя свойство коллекции?
, например
void Main()
{
var t1 = new Test() { Children = new List<string>() { "one", "two" } };
var t2 = new Test() { Children = new List<string>() { "one", "two" } };
var t3 = new Test() { Children = new List<string>() { "one", "three" } };
var tests = new List<Test>() { t1, t2, t3 };
var anon = from t in tests
select new
{
Children = t.Children
};
anon.GroupBy(t => t.Children).Dump();
}
public class Test
{
public List<string> Children {get;set;}
}
В этом примере я надеюсь на две группы:
Key: List () {"one", "two"} Значение: t1, t2
Key: List () {"one", "three"} Значение: t3
Насколько я понимаю, анонимные типы сравниваются не по ссылке, а путем сравнения равенства их открытых свойств.
Однако фактический результат состоит из трех групп:
Key: List () {"one", "two"} Значение: t1
Key: List () {"one", "two"} Значение: t2
Key: List () {"one", "three"} Значение: t3
Если это невозможно, есть ли способ получить желаемый результат?
Надеюсь, объяснил это ясно ...