假设我有这样的字符串
Sam is Boy
Joseph is Boy
Jasmine is Girl
Annie is Girl
Chris is Boy
我有一个快速而模糊的方法来准备一个像这样的c#字典…!
input.ForEach(i =>
{
string[] values = i.Split();
input_dictionary.Add(values[0], values[2]);
});
由于输入数据遵循固定格式,如"姓名是性别",我们是否有其他更好/优化的方法来实现这一点?
这里有一个你可以使用的正则表达式模式:
(.+) is (Boy|Girl)
下面的代码可能更快,但是您应该进行测试。
input_dictionary = (from i in input
let n = i.IndexOf(' is ')
select new { Name = i.Substring(0, n), Sex = i.Substring(n + 4) }
).ToDictionary(i => i.Name, i => i.Sex);
您还可以使用Regex类,它可能比上面的更快或更慢。没有测试很难说。