Hjælp til count af datatable

Tags:    .net

Undskyld det sikkert dumme spørgsmål.

Jeg har et linq query, hvor jeg joiner to tabeller.

var T_Vare1 =
(from t in T_Vare
join l in V_List
on t.Varenummer equals l.Varenummer
orderby l.VareID
select new
{
t.Varenummer,
t.Ordrenummer,
l.VareID
});

Jeg skal så have talt antallet af forekomster af en række varenumre hentet fra en anden tabel og skrevet dem ind i et array.

for (int k = 0; k < count; k++)
{
var optael = (from p in T_Vare1
where p.Varenummer == Convert.ToString(VareListe.Rows[k]"Varenummer"])
select new
{
p.Varenummer
});

AR[i, k] = Convert.ToString(optael.Count());

}

Men dette er nok den langsomligste proces i hele verden.

Det må kunne gøres smartere.







1 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Du har ret - det kan gøres meget smartere!

Jeg kan ikke huske den helt præcise syntax, men noget alá:

var T_Vare1 =
(from t in T_Vare
join l in V_List
on t.Varenummer equals l.Varenummer
orderby l.VareID
select new
{
t.Varenummer,
t.Ordrenummer,
l.VareID
}).ToList();

ELLER

var T_Vare1 =
(from t in T_Vare
join l in V_List
on t.Varenummer equals l.Varenummer
orderby l.VareID
select new
{
t.Varenummer,
t.Ordrenummer,
l.VareID
}).ToList<T_Vare>();

Så har du det hele i en list, i stedet for det array du foreslår, og så kan du lave en T_Vare1.Count

Tilgengæld, forstår jeg ikke, hvorfor du skal skrive dit join? Hvis du laver en DataClassContext - automatisk generet klasser der svarerende til database strukturen, ville du kunne nøjes med at skrive

var res = (from x in T_Vare select x).ToList<T_Vare>();



t