public static List <Person> FromString(string contents) { var lines = contents.Replace("\r", "").Split("\n"); var names = lines.First().Split('\t').Skip(1); var N = names.Count(); var preferences = lines.Skip(1); var people = new List <Person>(); foreach (var name in names) { people.Add(new Person(name.Trim())); } foreach (var line in preferences.Where(x => x.Trim().Length > 0)) { var w = line.Split('\t'); var type = CandyTypeParser.Parse(w[0]); for (int i = 0; i < N; i++) { var value = double.Parse(w[i + 1].Trim(), CultureInfo.InvariantCulture); people[i].Preferences.Add(type, value); } } return(people); }
public static List <CandyType> FromString(string contents) { var lines = contents.Replace("\r", "").Split("\n"); var bag = new List <CandyType>(); foreach (var line in lines.Where(x => x.Trim().Length > 0)) { var w = line.Replace('\t', ' ').Trim().Split(' '); var type = CandyTypeParser.Parse(w[0]); var value = w.Length > 1 ? int.Parse(w[1].Trim()) : 1; for (int i = 0; i < value; i++) { bag.Add(type); } } return(bag); }