如何修改C#版13位ISBN校验程序以移除LINQ依赖
调整后移除LINQ依赖的C# ISBN13校验代码
修改要点
- 移除了
System.Linq引用依赖 - 将原代码中用LINQ的
Select同时获取索引和字符的逻辑,替换为原生for循环实现,功能完全和原逻辑对齐 - 保留原有全部校验规则:先清除输入内容中的横杠和空格、校验处理后长度必须为13位、逐位计算加权和、最后对10取模判断校验结果是否有效
using System; public class Program { public static void Main() { Console.WriteLine(CheckISBN13("978-1734314502")); Console.WriteLine(CheckISBN13("978-1734314509")); Console.WriteLine(CheckISBN13("978-1788399081")); Console.WriteLine(CheckISBN13("978-1788399083")); static bool CheckISBN13(string code) { code = code.Replace("-", "").Replace(" ", ""); if (code.Length != 13) return false; int sum = 0; // 替换LINQ逻辑为原生for循环 for (int index = 0; index < code.Length; index++) { char digit = code[index]; if (char.IsDigit(digit)) sum += (digit - '0') * (index % 2 == 0 ? 1 : 3); else return false; } return sum % 10 == 0; } } }
内容的提问来源于stack exchange,提问作者Jenser
相关产品推荐
相关产品推荐

