Suite à export d'un fichier xml, je dispose d'une List(Of) me permettant d'alimenter un DataGridView.
MyJobs = (From k In MyList, a In k.Applications, j In a.Jobs
Select j.AffecteParent(a, k)).OrderBy(Function(j) j.EnvironnementApplicationJob).ToList()
' Chargement DataGridView
Me.DataGridView1.DataSource = MyJobs
Le load du DataGridView, environ 1200 lignes et 35 colonnes, prend 3-4".
Sur le formulaire, le load d'une vingtaine de Combobox prenait 4-5".
' Chargement ComboBoxENV
Dim MyENV = From a In MyJobs
Order By a.Environnement Ascending
Select a.Environnement
Me.ComboBoxEnv.DataSource = MyENV.Distinct.ToList
' Chargement ComboBoxApp
Dim MyAPP = From a In MyJobs
Order By a.Application Ascending
Select a.Application
Me.ComboBoxApp.DataSource = MyAPP.Distinct.ToList
J'ai supprimé toutes les comboboxes et créé un MenuStrip et plusieurs ToolStripMenuItems.
Pour le load
' Load ToolStripMenuEnv
Dim MyENV = (From a In MyJobs
Order By a.Environnement Ascending
Select a.Environnement).Distinct()
For Each item As String In MyENV
Me.ToolStripMenuEnv.DropDownItems.Add(item)
Next
' Load ToolStripMenuApp
Dim MyAPP = (From a In MyJobs
Order By a.Application Ascending
Select a.Application).Distinct()
For Each item As String In MyAPP
Me.ToolStripMenuApp.DropDownItems.Add(item)
Next
Mon problème, le load des ToolStrips, via For each ... Next s'effectue en 1'10".
Y aurait-il pas une autre méthode pour le load des ToolStrips ???
Dim MyENV = (From a In MyJobs.Select(Function(j) j.Environnement).Distinct()
Order By a Ascending
Select a)
For Each item As String In MyENV
mnuMenu.Items.Add(item)
Next
Dim MyENV = (From a In MyJobs.Select(Function(j) j.Environnement).Distinct()
Order By a Ascending
Select New ToolStripMenuItem(a)).ToArray()
mnuMenu.Items.AddRange(MyENV)
Ça me parait logique, un order by c'est long, je ne sais pas comment il est codé, mais il faut que pour chaque item, évaluer ou le placer dans la collection de sortie.
Le fait de faire le distinct d'abord, réduit cette collection et donc le temps d'exécution.
Après sortir un tableau de toolstripmenuitem et l'ajouter avec AddRange, je ne savais pas si ça amènerait un gain de temps
24 juil. 2015 à 08:11
24 juil. 2015 à 08:20
24 juil. 2015 à 10:14
J'ai testé tes propositions et la bonne est
Testé sur l'ensemble des ToolStrips, le chargement de celles-ci met 1".
Merci et bonne journée,
24 juil. 2015 à 12:18
Le fait de faire le distinct d'abord, réduit cette collection et donc le temps d'exécution.
Après sortir un tableau de toolstripmenuitem et l'ajouter avec AddRange, je ne savais pas si ça amènerait un gain de temps
24 juil. 2015 à 12:25