LINQ: trouver toutes les cases cochées dans un GridView

Considérer le courant de l'algorithme ci-dessous qui parcourt une GridView's lignes pour savoir si le contenu Checkbox est sélectionné/checked.

List<int> checkedIDs = new List<int>();

foreach (GridViewRow msgRow in messagesGrid.Rows)
{
  CheckBox chk = (CheckBox)msgRow.FindControl("chkUpdateStatus");
  if (chk.Checked){
   //we want the GridViewRow's DataKey value
   checkedMsgIDs.Add(int.Parse(messagesGrid.DataKeys[msgRow.RowIndex].Value.ToString()));
  }
}

Cela fonctionne comme prévu: vous êtes de gauche avec un entièrement rempli List<int>.

Question: Comment voulez-vous ou pourriez-vous ré-écrire ou améliorer cet algorithme à l'aide de LINQ pour la recherche de la GridView pour toutes les lignes qui ont leur Checkbox sélectionné/vérifié?

source d'informationauteur p.campbell