最近碰到一個問題,原題如下:
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();
上面這個方法是我想到最簡潔的方法,或許還有更好的方法,歡迎大家指出,謝謝!
