That issue come because number of email in inbox folder will be degree each time you moved.To fix this error, don't use foreach function, please using for. Bellow is code I was used:
MAPIFolder inBox = this.Application.ActiveExplorer().Session.GetDefaultFolder(OlDefaultFolders.olFolderInbox);
Items items = inBox.Items;
MAPIFolder destFolder = inBox.Folders["Fishing"];
MessageBox.Show(items.Count.ToString());
int ItemsCount = items.Count;
for(int i=ItemsCount;i>0;i--)
{
try
{
{
if (items[i].Subject.Contains("Fishing"))
{
items[i].Move(destFolder);
MessageBox.Show("Done!");
}
}
}
catch (System.Exception ex)
{
MessageBox.Show("Error when moving email: "+ex);
}
}