LINQ - 转弯列表到词典<字符串,字符串>
问题描述:
我只是工作的一个卡塔我的午餐和我来脱胶......LINQ - 转弯列表<string>到词典<字符串,字符串>
这里的我想要的步骤如下:
- 给定输入串,由下式给出的先前步骤的字符串数组结果的新行字符
- 分割字符串,跳过第一元件阵列
- 给定来自先前生成的字符串的集合中的步骤,创建一个包含每2个e的集合lements
在这最后的陈述我的意思是,给定的4串这个集合:
{
"string1",
"string2",
"string3",
"string4"
}
我应该与此集合对结束(是“元组”正确的术语?):
{
{ "string1","string2" },
{ "string3","string4" }
}
我开始寻找ToDictionary,然后转移到选择匿名类型,但我不知道怎么说“回到未来两个字符串作为一对”。
我的代码看起来在写作时与此类似:
public void myMethod() {
var splitInputString = input.Split('\n');
var dic = splitInputString.Skip(1).Select(/* each two elements */);
}
干杯的帮助!
詹姆斯
答
嗯,你可以使用(未经测试):
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>
,开始时,你可以仅仅通过索引访问对,但这是无聊 ...
正是我一直在寻找!我不知道拉链 - 感谢。 – 2012-07-06 12:49:04