Я пытаюсь использовать LINQ для создания Dictionary<string, List<CustomObject>>
из List<CustomObject>
. Я могу заставить это работать, используя "var", но я не хочу использовать анонимные типы. Вот что у меня
var x = (from CustomObject o in ListOfCustomObjects
group o by o.PropertyName into t
select t.ToList());
Я также Cast<>()
однажды попробовал использовать библиотеку LINQ x
, но у меня возникают проблемы с компиляцией, из-за того, что это неверное приведение.
var
не использует «анонимный» тип, он использует «неявный» тип. Анонимные типы - это новые классы, созданные компилятором для обработки конструкции new { thing = "stuff" };
. Неявные типы являются существующими классами, var
это просто удобный способ ссылаться на них, когда переменная присваивается немедленно, тип переменной может быть выведен из типа объекта, который ему назначен. Вы даже можете неявно ввести переменную, ссылающуюся на анонимный тип, а именно:var a = new { thing = "stuff" };