Quel est le meilleur moyen de récupérer le contenu d'un DataGridView et de placer ces valeurs dans une liste en C#?Convertir le contenu de DataGridView en Liste en C#
9
A
Répondre
12
List<MyItem> items = new List<MyItem>();
foreach (DataGridViewRow dr in dataGridView1.Rows)
{
MyItem item = new MyItem();
foreach (DataGridViewCell dc in dr.Cells)
{
...build out MyItem....based on DataGridViewCell.OwningColumn and DataGridViewCell.Value
}
items.Add(item);
}
4
Ou une manière LINQ
var list = (from row in dataGridView1.Rows.Cast<DataGridViewRow>()
from cell in row.Cells.Cast<DataGridViewCell>()
select new
{
//project into your new class from the row and cell vars.
}).ToList();
3
var Result = dataGridView1.Rows.OfType<DataGridViewRow>().Select(
r => r.Cells.OfType<DataGridViewCell>().Select(c => c.Value).ToArray()).ToList();
ou pour obtenir un dictionnaire de chaîne des valeurs
var Result = dataGridView1.Rows.OfType<DataGridViewRow>().Select(
r => r.Cells.OfType<DataGridViewCell>().ToDictionary(c => dataGridView1.Columns[c.OwningColumn].HeaderText, c => (c.Value ?? "").ToString()
).ToList();
4
Si vous liez votre liste à l'aide DataSource, vous pouvez reconvertir en ,
List<Class> myClass= DataGridView.Datasource as List<Class> ;
0
IEnumerable.OfType<TResult>
méthode d'extension peut être votre meilleur ami ici. Voici comment je l'aurais fait à travers une requête LINQ:
List<MyItem> items = new List<MyItem>();
dataGridView1.Rows.OfType<DataGridViewRow>().ToList<DataGridViewRow>().ForEach(
row =>
{
foreach (DataGridViewCell cell in row.Cells)
{
//I've assumed imaginary properties ColName and ColValue in MyItem class
items.Add(new MyItem { ColName = cell.OwningColumn.Name, ColValue = cell.Value });
}
});
Questions connexes
- 1. liste Convertir le double [] [] en C# 3.0
- 2. Convertir le dictionnaire en liste de collection en C#
- 3. convertir le vecteur en liste
- 4. Liste le contenu d'un fichier sur le formulaire en C#?
- 5. convertir le jeu de résultats en liste
- 6. C# Datagridview - Convertit TextColumn en ComboBoxColumn
- 7. liste Convertir en tableau
- 8. Peut-on convertir la liste en DataTable en C#?
- 9. Convertir le modèle linq en liste générique
- 10. Comment convertir le code C# en C++
- 11. Convertir le bit C# en booléen
- 12. Concaténer tout le contenu de la liste en une chaîne en C#
- 13. Convertir la liste (de l'objet) en Liste (de la chaîne)
- 14. Convertir DataTable en liste générique?
- 15. comment contrôler le mouvement du curseur de datagridview en C#
- 16. comment convertir décimal en binaire en C++
- 17. C++/CLI Convertir une liste C++ native non gérée en une liste C++/CLI gérée
- 18. convertir C++ en vb6
- 19. Convertir VB en C#
- 20. Convertir la liste d'un type en liste d'un autre type en C# 3.5
- 21. Convertir la liste <Cookie> à CookieCollection en C#
- 22. C# Convertir une matrice d'octets en liste générique
- 23. Convertir le code PHP en C#
- 24. C++ Convertir le fichier binaire en image
- 25. Convertir Char [] en une liste <byte> (C#)
- 26. Comment convertir un contenu STDIN en tableau?
- 27. Comment convertir le code c en matlab
- 28. Convertir le code VB.NET en C#
- 29. Convertir le programme C++ en assembly
- 30. convertir le code en PHP pour C#
Si dans l'instruction foreach je voulais accéder à la valeur du premier élément de la rangée, comment j'accomplirais cela? –
La deuxième foreach contiendrait vos données de cellule ... vous vous déplacez ligne par ligne ... tout en extrayant les données de chaque cellule dans cette rangée. Utilisez ensuite DataGridViewCell.OwningColumn si vous avez besoin de faire correspondre les choses, sinon il est linéaire et vous pouvez simplement utiliser DataGridViewCell.Value pour extraire la valeur de chaque cellule lorsque vous vous déplacez horizontalement à travers les données –