"DataGridView", um den Wert der ersten Spalte der markierten Zeile
Frage ich mich, was wäre der effizienteste Weg, um den Wert der ersten Spalte in einem DataGridView-Zeile.
Derzeit bin ich mit diesem code:
List<string> SelectedRows = new List<string>();
foreach (DataGridViewRow r in dgv.SelectedRows)
{
SelectedRows.Add(r.Cells[0].Value.ToString());
}
int index = Convert.ToInt32(SelectedRows[0]);
Dies funktioniert gut; jedoch ist es eine effizientere Möglichkeit, dies zu tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
"Effizienteste" ist oft subjektiv. Ich weiß nicht, ob der folgende code ist schneller oder kürzer sind, als was Sie schon haben, aber es ist die Methode, die ich bevorzuge.
Wenn Sie versuchen, eine Liste aller Werte aus einer bestimmten Spalte, versuchen Sie dies:
Wenn Sie erlauben nur eine ausgewählte Zeile zu einem Zeitpunkt, und Sie möchten, zu konvertieren, eine bestimmte Zelle, versuchen Sie dies:
Habe ich einige performance-Tests mit dem angegebenen code in die Antworten. Die Durchschnittliche Zeit, die für jede Methode über 1.000.000 mal:
Mein original-code:
Zeit = 0,0159 ms
Zeit = 0,0152 ms
Als single-wählen Sie nur: 0,0013438 ms
Zeit = 0,0057 ms
Kopieren von Patrick Smacchia ist Blog:
The fact that for is more efficient than foreach results from the fact that foreach is using an enumerator object behind the scene.
Ich lieber mit
for
loop stattforeach
Schleifefor
Schleife ist vorzugsweise schneller alsforeach
- Schleife, wenn Sie nicht haben, etwas zu tun, um jedes element, und kann Ihr problem lösen, indem Sie einfach mit dem index wie folgt:Erhält man den Wert der ersten Spalte der ausgewählten Zeile in dem dataGridView contentClick können wir diesen code, und dieser Wert kann gespeichert werden, im id-variable