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