static void Main(string[] args) { string a = @"Text:file.txt(6B); Some string content Image:img.bmp(19MB); 1920x1080 Text:data.txt(12B); Another string Text:data1.txt(7B); Yet another string Movie:logan.2017.mkv(19GB); 1920x1080; 2h12m"; ; List <BaseClass> result = new List <BaseClass>(); //List<OutputText> outputTexts = new List<OutputText>(); я хз короче как правильней нужно было бы сделать //List<OutputImages> outputImages = new List<OutputImages>(); по этому я все в 1 Лист запихнул вместо 3х //List<OutputMovies> outputMovies = new List<OutputMovies>(); Но из-за этого порядок вывода изменился string[] files = a.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < files.Length; i++) { string[] split = files[i].Split(':'); string fileType = split[0].ToLower().Trim(' '); switch (fileType) { case "text": OutputText text = new OutputText(); text.Parse(split[1]); result.Add(text); break; case "image": OutputImages image = new OutputImages(); image.Parse(split[1]); result.Add(image); break; case "movie": OutputMovies movies = new OutputMovies(); movies.Parse(split[1]); result.Add(movies); break; } } foreach (var p in result) { p.Print(); } Console.ReadLine(); }
public bool ShouldCopyToBuildServer(ITaskItem item) => !OutputImages.Contains(item);