C#中如何检查字符串数组内所有字符串长度是否一致
C#判断字符串数组内所有元素长度是否全部相等
以下是两种可直接落地的实现方案,兼容空数组、null元素等边界场景:
方法1:使用LINQ(代码最简洁)
先引入System.Linq命名空间,一行代码即可完成判断,适合绝大多数常规业务场景:
using System.Linq; string[] text = new string[] {"string1", "string2", "string3"}; // 空数组直接返回true,其余情况校验所有元素长度和第一个元素一致 bool allLengthEqual = text.Length == 0 || text.All(s => s?.Length == text[0]?.Length);
你给出的示例数组中三个字符串长度均为7,运行后allLengthEqual的返回值为true。
方法2:手写循环(性能更优)
如果数组体量很大,或者项目中不使用LINQ,可以手写遍历逻辑,遇到第一个长度不匹配的元素就会直接终止判断,不需要遍历完整个数组,性能更高:
bool CheckAllStringLengthEqual(string[] arr) { // 数组为空、长度为0或1时,天然满足长度全部相等的条件 if (arr == null || arr.Length <= 1) return true; // 用-1标记null元素的长度,和正常字符串长度(>=0)做区分 int targetLength = arr[0]?.Length ?? -1; for (int i = 1; i < arr.Length; i++) { int currentLength = arr[i]?.Length ?? -1; if (currentLength != targetLength) return false; } return true; } // 调用示例 bool result = CheckAllStringLengthEqual(text);
补充说明
- 如果你能确定数组里不存在null元素,可以把代码里的
?.空条件运算符、?? -1的null兼容逻辑去掉,代码会更精简 - 如果业务逻辑里认为null和空字符串
""长度相等,可以把null对应的标记值改成0即可
内容的提问来源于stack exchange,提问作者codelover1
相关产品推荐
相关产品推荐

