最近碰到一个问题,原题如下:
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();
上面这个方法是我想到最简洁的方法,或许还有更好的方法,欢迎大家指出,谢谢!