我正在吃午餐上的Kata,我已经不合时宜了......
以下是我要遵循的步骤:
在最后一个陈述中,我的意思是,给定4个字符串的集合:
{
"string1",
"string2",
"string3",
"string4"
}
我应该最终得到这些对的集合('tuples'是正确的术语吗?):
{
{ "string1","string2" },
{ "string3","string4" }
}
我开始查看ToDictionary,然后转移到选择匿名类型,但我不知道如何说“将下两个字符串作为一对返回”。
在撰写本文时,我的代码与此类似:
public void myMethod() {
var splitInputString = input.Split('\n');
var dic = splitInputString.Skip(1).Select( /* each two elements */ );
}
欢呼帮助!
詹姆斯
答案 0 :(得分:4)
好吧,你可以使用(未经测试):
var dic = splitInputStream.Zip(splitInputStream.Skip(1),
(key, value) => new { key, value })
.Where((pair, index) => index % 2 == 0)
.ToDictionary(pair => pair.key, pair => pair.value);
Zip
部分将以:
{ "string1", "string2" }
{ "string2", "string3" }
{ "string3", "string4" }
...使用索引的Where
对将跳过其他所有条目(这将是“使用下一个键的值”)。
当然,如果您确实知道您开始使用List<string>
,那么您可以按索引访问这些对,但那是无聊的。 ..