Если вам нужно использовать это чаще или если вы просто хотите иметь более элегантный код, вы можете использовать лямбда-выражения и делегаты для создания для этого новой абстракции:
static void SafeForEach<T>(this IEnumerable<T> source, Action<T> op) {
foreach(var el in source) {
try { op(el); }
catch (Exception e) { }
}
}
Тогда вы можете написать просто:
xmls.SafeForEach(xml => {
// Xml processing
});
Однако использование исключений в ситуациях, когда ожидается ошибка, не лучший стиль программирования. Если вы можете написать метод, скажем IsValid
, который возвращает true, если документ действителен, то вы можете написать:
foreach(var xml in xmls.Where(x => x.IsValid)) {
// Xml processing
}