最近碰到一个问题,原题如下:
List<List<string>> zipList = new List<List<string>>{
new List<string>{"a","b","c","d"},
new List<string>{"1","2","3","4"},
new List<string>{"A","B","C","D"},
new List<string>{"一","二","三","四"},
}; 需要返回的结果 a1A一,b2B二,c3C三,d4D四
一开始拿到这个题有点蒙,仔细看题后灵光一闪,其实这个题主要是考linq的zip方法,详细方法如下:
List<string> resuList = new List<string>();
List<List<string>> zipList = new List<List<string>>{
new List<string>{"a","b","c","d"},
new List<string>{"1","2","3","4"},
new List<string>{"A","B","C","D"},
new List<string>{"一","二","三","四"},
};
for (int i = 0; i < zipList.Count; i++)
{
if (i == 0)
{
resuList = zipList[i];
}
else
{
resuList = resuList.Zip(zipList[i], (first, second) => first + second).ToList();
}
}
foreach (var item in resuList)
Console.WriteLine(item);
Console.Read();
上面这个方法是我想到最简洁的方法,或许还有更好的方法,欢迎大家指出,谢谢!
