【发布时间】:2020-07-01 18:14:55
【问题描述】:
Given a list of strings:
"A"
"B"
"C"
"D"
我希望得到一个包含 2 个项目的列表,每个项目都重复第二个项目:
“A”、“B”
“B”、“C”
“C”、“D”
我正在尝试的是下一个可能更好的解决方案?
//result = List<string> {"A","B","C","D"}
List<List<string>> obList = new List<List<string>>();
List<string> tst = new List<string>(2);
foreach (var s in result)
{
tst.Add(s);
if (tst.Count == 2)
{
obList.Add(tst);
tst = new List<string> { s };
}
}
【问题讨论】:
-
如果您不想使用来自链接副本的过于复杂和普遍接受的答案 - 这实际上似乎并没有解决您的问题,即关于复制第二项 -你可以试试这个:
var obList = result.Zip(result.Skip(1)).Select(p => new List<string> { p.First, p.Second }).ToList();