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
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>();