using System.Text.RegularExpressions;
using System.Collections.Generic;
using System.Security.Cryptography;
using System.Globalization;
using System.ComponentModel.DataAnnotations;
private const string ENCRYPT_KEY = "A4868F33-F599-4F92-ACC5-66CB6E81E0FF";
public static void Main()
string str = @"Last, First <name1@domain.com>; spaced name2@domain.com, First Last <name3@domain.com>,""First Last"" <name4@domain.com>, ""Last, First"" <name5@domain.com>; irvin@mail.com, mario, rossi e verdi <pippo@gmail.com>, irvin2@mail.com,rossi&c <pippo2@gmail.com>;pippo3@gmail.com";
var strCommaChunks = new List<string>();
strCommaChunks.AddRange(str.Split(',', ';'));
var strLowerChunks = new List<string>();
strCommaChunks.ForEach(s => strLowerChunks.AddRange(s.Split('<')));
var strUpperChunks = new List<string>();
strLowerChunks.ForEach(s => strUpperChunks.AddRange(s.Split('>')));
var validEmails = new List<string>();
strUpperChunks.Where(s => s.Contains('@')).ToList().ForEach(s => validEmails.Add(s.Trim()));
validEmails.ForEach(Console.WriteLine);