博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用linq快速判断给定数字是否包含在某个段范围内
阅读量:4357 次
发布时间:2019-06-07

本文共 2306 字,大约阅读时间需要 7 分钟。

一、需求:

知道某段范围

0x0020~0x007F
0x00A0~0x017F
0x01A0~0x01CF
0x01F0~0x01FF
0x0210~0x021F
0x1EA0~0x1EFF
给定一个值,快速判断给定值是否在以上编码范围内

二、解决方案

用面向对象的方案解决

1、每个段都有一个最小值,一个最大值,定义一个类

1 public Section(int minValue, int maxValue) 2         { 3             this.MinValue = minValue; 4             this.MaxValue = maxValue; 5         } 6          7         ///  8         /// 存储最小值 9         /// 10         public int MinValue { get; set; }11 12         /// 13         /// 存储最大值14         /// 15         public int MaxValue { get; set; }

 

2、初始化数据

 

1   private static readonly List
lstSections; 2 3 static Program() 4 { 5 lstSections = new List
6 { 7 new Section(0x0020, 0x007F), 8 new Section(0x00A0, 0x017F), 9 new Section(0x01A0, 0x01CF),10 new Section(0x01F0, 0x01FF),11 new Section(0x0210, 0x021F),12 new Section(0x1EA0, 0x1EFF)13 };14 15 }

 

用linq比较大小验证方法

///         /// Vaid        ///         ///         /// 
True:在这个范围 Fase:不在这个范围
public static bool IsValidSection(int value) { var lstFind = lstSections.FindAll(p => value >= p.MinValue && value <= p.MaxValue); return lstFind.Count > 0; }

 

调用该方法:

1  static void Main(string[] args) 2         { 3  4              5             while (true) 6             { 7                 Console.Write("请输入一个16进制数值:"); 8                 var input = Console.ReadLine(); 9                 if (input == "q")10                 {11                     break;12                 }13                 var result = 0;14                 var b = int.TryParse(input.ToUpper(), NumberStyles.AllowHexSpecifier, null, out result);15                 if (b)16                 {17                     Console.WriteLine("{0}-{1}", input, IsValidSection(result) ? "在给定范围内" : "不在给定范围内");18                 }19                 else20                 {21                     Console.WriteLine("输入值错误");22                 }23             }24 25         }

 

 

 

转载于:https://www.cnblogs.com/CnKker/p/3684432.html

你可能感兴趣的文章
2016424王启元 Exp5 msf基础应用
查看>>
android + eclipse + 后台静默安装(一看就会)
查看>>
JPA事务总结
查看>>
transitionFromView方法的使用
查看>>
ubuntu nginx+php环境520错误
查看>>
Java中OutOfMemoryError(内存溢出)的三种情况及解决办法
查看>>
windows 10 无法使用内置管理员账户打开应用的解决方案
查看>>
php入门变量
查看>>
wince(2.3)获取位图某一点的RGB值
查看>>
【转】C#中如何实现左截取和右截取字符串
查看>>
SQL Server 中关于EXCEPT和INTERSECT的使用方法
查看>>
csdn肿么了,这两天写的博文都是待审核
查看>>
windows下cocos2dx3.0开发环境及Android编译环境搭建
查看>>
BW连接数据库
查看>>
登录之后更新导航
查看>>
spring 的单例模式
查看>>
Python学习手册
查看>>
完整的系统帮助类Utils
查看>>
使用PowerShell批量注册DLL到GAC
查看>>
递归算法
查看>>