-2

说我有这样的字符串

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]);
});

我们有没有其他更好/优化的方法来实现这一点,因为输入数据遵循固定格式,如“姓名是性别”?

4

2 回答 2

3

这是您可以使用的正则表达式模式:

(.+) is (Boy|Girl)
于 2013-06-02T04:03:36.083 回答
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 类,它可能比上述更快或更慢。没有测试很难说。

于 2013-06-02T04:00:36.877 回答