Couler les éléments ListView dans la liste ?

Comment puis-je ListView.Items à une List ?

C’est ce que j’ai essayé:

 List list = lvFiles.Items.Cast().ToList(); 

mais j’ai reçu cette erreur:

Impossible de convertir l’object de type ‘System.Windows.Forms.ListViewItem’ en type ‘System.Ssortingng’.

Une ListViewItemCollection est exactement ce que cela ressemble – une collection d’éléments ListViewItem . Ce n’est pas une collection de chaînes. Votre code échoue au moment de l’exécution pour la même raison que ce code échouerait au moment de la compilation:

 ListViewItem item = lvFiles.Items[0]; ssortingng text = (ssortingng) item; // Invalid cast! 

Si vous voulez une liste de chaînes, chacune étant extraite de la propriété Text d’un ListViewItem , vous pouvez le faire facilement:

 List list = lvFiles.Items.Cast() .Select(item => item.Text) .ToList(); 

La méthode Cast essaiera essentiellement d’effectuer une boîte / unbox, donc elle échouera si les éléments de la liste ne sont pas déjà des chaînes. Essayez ceci à la place:

 List list = lvFiles.Items.Cast() .Select(x => x.ToSsortingng()).ToList(); 

Ou ca

 List list = lvFiles.Items.Cast() .Select(x => x.Text).ToList(); 

Essayez quelque chose comme ça

 List list = lvFiles.Items.Cast().Select(x=> x.ToSsortingng()).ToList(); 

Essayez ceci en utilisant la méthode Select :

pour le texte de la liste:

 List listText = lvFiles.Items.Select(item => item.Text).ToList(); 

pour les valeurs de liste:

 List listValues = lvFiles.Items.Select(item => item.Value).ToList(); 

Ou peut-être, pour les deux:

 Dictionary files = lvFiles.Items.ToDictionary(key => key.Value, item => item.Text);