Можно ли проецировать с помощью Select на анонимный тип?
Вот пример кода
public interface ITest
{
string A{get;}
int B{get;}
}
string[] names = { "Tom", "Dick", "Harry", "Mary", "Jay" };
IQueryable<ITest> query =
from n in names.AsQueryable()
select new {A = n.ToUpper(), B = 2012};
Приведенный выше код вызывает
Невозможно неявно преобразовать тип 'System.Linq.IQueryable' на 'System.Linq.IQueryable'
Примечание: я могу заставить приведенный выше код работать, если я определю класс Test, который реализует ITest, а затем проецирую его в этот класс, используя:
select new Test {A = n.ToUpper(), B = 2012};
Почему? Я пытаюсь чтобы увидеть, могу ли я определить только интерфейс, и мне не нужно определять конкретную реализацию объекта, и пусть Linq создаст мне объект.