public MIME walk(MIME mimePart, MimeWalker headerMatch) { for (int i = 0; i < mimePart.body.Count; i++) { for (int h = 0; h < mimePart.header.Count; h++) { if (headerMatch(mimePart.header[h].key, mimePart.header[h].value)) { return(mimePart); } } return(walk(mimePart.body[i], headerMatch)); } return(null); }
public List <MIME> walkMatch(MIME mimePart, MimeWalker headerMatch, ref List <MIME> matchArray) { if (matchArray == null) { matchArray = new List <MIME>(); } for (int i = 0; i < mimePart.body.Count; i++) { for (int h = 0; h < mimePart.header.Count; h++) { if (headerMatch(mimePart.header[h].key, mimePart.header[h].value)) { matchArray.Add(mimePart); } } walkMatch(mimePart.body[i], headerMatch, ref matchArray); } return(matchArray); }