Существует много способов перебора коллекции. Любопытно, есть ли какие-либо различия или почему вы должны использовать один путь друг над другом.
Первый тип:
List<string> someList = <some way to init>
foreach(string s in someList) {
<process the string>
}
Другой способ:
List<string> someList = <some way to init>
someList.ForEach(delegate(string s) {
<process the string>
});
Предполагаю, что вместо анонимного делегата, который я использовал выше, у вас есть многократно используемый делегат, который вы могли бы указать...