Det snabbaste sättet att fylla en DataGrid måste nästan vara direkt med en DataReader, alternativt att även fylla en egenhändigt komponerad Collection med data från en DataReader.
Nej det är den inte.. men jag vill veta det super-duper snabbaste sättet att fylla ett datagrid :)
det snabbaste som jag ser det är att deklarera en struct med ett antal variabler
och sen i sin tur initiera structen som en array.. men datagrid:et fixar ju inte detta.. den vill ju ha en IEnumerable för att öht kunna kirra upp datat. :l
Du tycker det är jobbigt med klasser, men föreslår strukter själv. Skillnaden mellan dem är inget alls i det sammanhanget.
Strukten är lite bättre prestandamässigt, men inte enklare att jobba med. Och vill du ha IEnumerable så åker du på en klass.
Egentligen så kommer du inte märka någon skillnad på om du använder dig av en datatable/array/collection i prestanda, speciellt inte om du ändå tänker använda dig av en DataGrid i slutändan, då har du ändå inte optimal prestanda där, så de extra microsekunderna det tar att använda sig av en datatable istället för en array kommer du knappast att märka något av.
Det du missar med din Datatable istället för en collection är typsäkerheten och en del typcasting som måste ske när datan skall ut, men som sagt, du har garanterat andra ställen i din kod där du kan vinna mer i prestanda genom förändringar.
Du tycker det är jobbigt med klasser, men föreslår strukter själv. Skillnaden mellan dem är inget alls i det sammanhanget.
Jag tycker inte att det är jobbigt med klasser, var har jag skrivit det?. Structer är mindre och snabbare än klasser om man bara ska ha dem för att behålla värden. Denna fråga handlade om hur man fyller ett datagrid snabbast möjligt med programmatisk data. Därför behöver jag ett medel som datagrid:et kan itera igenom så snabbt och smidigt som möjligt.
Och vill du ha IEnumerable så åker du på en klass.
Jag vill inte ha IEnumerable, det är datagrid:et som vill ha det.
speciellt inte om du ändå tänker använda dig av en DataGrid i slutändan, då har du ändå inte optimal prestanda där,
Jag använder i princip alla datagrid:ets funktioner så jag kan inte byta till något annat.
Men då måste jag ju lägga in en hel klass för varenda rad jag har i en arraylist eller dyl
det snabbaste som jag ser det är att deklarera en struct med ett antal variabler
Eftersom det inte är någon skillnad på en strukt och en klass hur de skapas och hur de skall användas i en collection så utgick jag från att du tyckte det var jobbigt att du måste skapa ett nytt objekt för varje rad, men inte en strukt och skillnaden är noll och ingen (mer än lite prestandavinst för strukten).
Jag vill inte ha IEnumerable, det är datagrid:et som vill ha det.
Tja, eftersom datagriden vill ha det, så vill ju du också ha det, annars så fungerar det ju inte :)
Denna fråga handlade om hur man fyller ett datagrid snabbast möjligt med programmatisk data. Därför behöver jag ett medel som datagrid:et kan itera igenom så snabbt och smidigt som möjligt.
Tja nu vet jag inte exakt hur datagriden använder sig av datan den får, men att den itererar igenom med hjälp av IEnumerable och reflektion är inte helt otänkbart, och i det fallet så spelar det inte så stor roll om du använder en ArrayList/Collection/DataTable. Eftersom prestandaförlusten inte ligger där utan i själva bindingingsmomentet till DataGriden och inte skapadent och hanteringen av datan.
I vilket fall som helst så som jag sa tidigare så finns det säkert viktigare ställen att jaga prestand på, det är dock spekulationer eftersom jag inte vet hur din applikation ser ut, men prestandavinsten är och kommer att förbli relativit liten.
- M
303 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e