DataGridView écrire toutes les valeurs d'une colonne à la liste
Je voudrais écrire toutes les valeurs de la colonne 2 de la liste:
List<string> list = new List<string>();
foreach (var item in dataGridView1.Rows)
{
list.Add(item.Cells[1].Value.ToString);
}
Toutefois, cela renvoie une erreur.
Quelle est l'erreur que vous obtenez, et vous devriez être à l'indexation de la colonne 2, dans le code actuel, vous faites référence à la première colonne.
Ah oui, exact que maintenant. L'erreur est: est-ce
Ah oui, exact que maintenant. L'erreur est: est-ce
'obejct' does not contain a definition for 'cells' and no extension method 'Cells' accepting a first argument of type 'object' could be found (are you missing a using directive or an assembly reference?).
OriginalL'auteur jacobz | 2014-01-23
Vous devez vous connecter pour publier un commentaire.
Pour l'erreur:
Vous avez besoin de modifier votre
foreach
boucle et au lieu devar
spécifierDataGridViewRow
Aussi, vous devez
()
pourToString
Si vous souhaitez utiliser LINQ alors vous pouvez le faire en une seule instruction comme:
EDIT:
Ci-dessus pourrait entraîner une Référence Nulle exception, si la valeur de
Cell[1]
pour toute ligne estnull
vous pouvez ajouter une case avant d'ajouter ce qui serait à vérifier l'existence de la cellule et s'il a de la valeur ou pas. comme:La vérification ci-dessus serait vous faire économiser de l'appel
ToString
sur un objet nul et vous n'obtiendrez pas l'exception.System.NullReferenceException
àlist.Add(item.Cells[1].Value.ToString());
; à l'aide de LINQ il retourne la même àr.Cells[1].Value.ToString())
cela signifie que vous avez
null
valeur dans votre colonne de certaines lignes. Permettez-moi de modifier la réponsede vérifier la édité une partie de la réponse
Pouvez-vous montrer comment insérer une valeur vide à partir de la datagridview à la liste?
OriginalL'auteur Habib
Pour tenir compte de la valeur Null exceptions à l'aide de LINQ:
OriginalL'auteur jk777
L'erreur que vous obtenez arrive parce que
Rows
est pas automatiquement converti àDataGridViewRow
lorsque vous utilisezvar
.Le code correct est:
OriginalL'auteur Dethariel