Коллекция LINQ GroupBy

Можно ли 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"} Value: t1, t2

Key: List () {"one", " three "} Значение: t3

Насколько я понимаю, анонимные типы сравниваются не по ссылке, а путем сравнения равенства их общедоступных свойств.

Однако фактический результат состоит из трех групп:

Ключ: List () {"один", "два"} Значение: t1

Ключ: List () {"один", "два"} Значение : t2

Ключ: List () {"один", "три"} Значение: t3

Если это невозможно, есть ли способ получить желаемый результат?

Надеюсь, это ясно объяснил. ..

7
задан TheNextman 15 November 2011 в 15:19
поделиться