如何实现C#中两个字符串数组对应元素并排打印输出?
C# 数组元素配对输出解决方案
问题场景
现有C#代码如下:
public static void CategoryX(string categories) { string[] codes = { "A", "B", "C", "D", "E" }; string[] names = { "FIRST LETTER", "SECOND LETTER", "THIRD LETTER", "FOURTH LETTER", "FIFTH LETTER" }; }
期望输出格式:
A FIRST LETTER B SECOND LETTER C THIRD LETTER D FOURTH LETTER E FIFTH LETTER
尝试过带GroupBy的for循环、布尔比较数组、创建第三个数组等方法均未成功,寻求可行方案。
可行解决方案
方法1:基础for循环
直接通过索引遍历两个数组,按格式拼接输出,前提是两个数组长度一致:
public static void CategoryX(string categories) { string[] codes = { "A", "B", "C", "D", "E" }; string[] names = { "FIRST LETTER", "SECOND LETTER", "THIRD LETTER", "FOURTH LETTER", "FIFTH LETTER" }; // 先校验数组长度,避免索引越界 if (codes.Length != names.Length) return; for (int i = 0; i < codes.Length; i++) { Console.WriteLine($"{codes[i]} {names[i]}"); } }
方法2:使用LINQ的Zip方法
如果项目引入了LINQ命名空间,可以用Zip方法直接将两个数组的元素配对,代码更简洁:
using System.Linq; // 需引入此命名空间 public static void CategoryX(string categories) { string[] codes = { "A", "B", "C", "D", "E" }; string[] names = { "FIRST LETTER", "SECOND LETTER", "THIRD LETTER", "FOURTH LETTER", "FIFTH LETTER" }; foreach (var pair in codes.Zip(names, (code, name) => $"{code} {name}")) { Console.WriteLine(pair); } }
注意事项
- 必须保证两个数组长度完全一致:
Zip会以较短数组的长度为准截断结果,for循环则可能触发索引越界异常,建议先做长度校验。 - 如果需要将结果保存为字符串数组而非直接输出,只需把拼接后的字符串存入新数组即可。
内容的提问来源于stack exchange,提问作者Selkie
相关产品推荐
相关产品推荐

