说我有像这样的字符串
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]);
});
我们是否有其他更好/优化的方法来实现这一点,因为输入数据遵循固定格式,如“名称是性别”?
答案 0 :(得分:3)
这是你可以使用的正则表达式模式:
(.+) is (Boy|Girl)
答案 1 :(得分:0)
以下内容可能更快,但您应该对其进行测试。
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类,它可能比上面更快或更慢。没有测试就很难说。