 <p>Here's what I would do, making use of a <code>Person</code> class. It may not seem necessary right now given the scope of your project, but if the scope ever grows, using classes and instances will pay off. Plus, this way, you have the names to match the ages you're seeking which is probably going to be necessary at some point anyway.</p> <pre><code>public static List&lt;Person&gt; GetResults(string[] text) { var results = new List&lt;Person&gt;(); foreach(var line in text) { results.Add(Person.Parse(line)); } return results; } public class Person { public string Name { get; private set; } public int Age { get; private set; } public Person(string name, int age) { Name = name; Age = age; } public static Person Parse(string fromInputLine) { ValidateInput(fromInputLine); var delimPosition = fromInputLine.LastIndexOf(' '); var name = fromInputLine.Substring(0, delimPosition); var age = Convert.ToInt32(fromInputLine.Substring(delimPosition + 1)); return new Person(name, age); } private static void ValidateInput(string toValidate) { if (!System.Text.RegularExpressions.Regex.IsMatch(toValidate, @"^.+\s+\d+$")) throw new ArgumentException(string.Format(@"The provided input ""{0}"" is not valid.", toValidate)); } } </code></pre>