2009-05-05 2 views
2

У меня есть простой выбор из типизированного набора данных:LINQ: какой тип результата?

var productlist = from prds in dsProducts.sk_products.AsEnumerable() 
          join prdcat in dsProducts.sk_productscategories.AsEnumerable() on prds.Field<int>("productid") equals prdcat.Field<int>("productid") where prdcat.Field<int>("categoryid") == categoryid 
          select prds; 

Где ProductList это набор записей из sk_products набора данных DataTable. Я хотел бы написать функцию для фильтрации записей больше, с особым на один из его колонок:

public List<string, string> GetDistinctManufacturerList(? productlist, int manufacturerid) 
    { 
     manufacturers = from prdz in productlist where prdz.Field<int>("manufacturerid") == manufacturerid select prdz; [...] 
    } 

С какой тип объекта следует обратиться к переменной ProductList?

+0

У Адама был комментарий .AsEnumerable(), он необходим здесь, потому что это несвязанный набор данных, хранящийся в xml. – balint

ответ

2

Сво IEnumberable < выбран типом данных> - выбранного типа данные может быть анонимным типа, или в данном случае, будет ваш класс типа набора данных.

+0

IEnumerable был ответом, спасибо! – balint

1

Я бы предположил что-то вроде IEnumerable<Product>. И как ck says, Product - это имя вашего класса данных LINQ.

0

В вашем первом примере ... наведите курсор на слово «var» в Visual Studio и отобразите «Тип».

Если это что-то вроде «anonymouse {blahblah}» ... тогда вам, вероятно, придется создать класс, для которого вы хотите его преобразовать, чтобы вы могли использовать его как параметр функции.

Смежные вопросы