2010-09-27 5 views
3

Je souhaite supprimer l'entrée à chaque itération. Puis-je le faire? Voici mon codeC# EventLog. Remove selected EventLogEntry

static void Main(string[] args) 
{ 

    el = new EventLog(); 
    el.Log = "XMLWatcherLog"; 
    el.Source = "XMLWatcherSource"; 


    string netStr =string.Empty; 

    foreach (EventLogEntry entry in el.Entries) 
    { 
     netStr += "<item>" + "<path>" + entry.Message + "</path>"; 

     // here i want to delete entry 
    } 

} 

Répondre

1

Je pense que vous ne devriez pas utiliser foreach parce que vous allez modifier la liste (supprimer l'entrée). Pour le premier code d'itération fonctionnera bien mais sur la deuxième itération il lèvera l'exception en disant que 'la collection a été modifiée'. Au lieu de foreach vous pouvez utiliser simple pour la boucle.

+0

vous dit que je dois écrire un code comme: for (int i = 0; i AEMLoviji

+0

Eh bien, il existe une méthode EventLog.Delete. Vous pouvez utiliser cette méthode. Voici la page qui peut vous donner plus d'informations. http://msdn.microsoft.com/en-us/library/twdecbsx(VS.80).aspx – Shekhar

+1

il supprimera tout le journal dont le nom est MyCustomLog. mais pas sélectionné entrée de la collection – AEMLoviji