一、需求:

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

二、解决方案


用面向对象的方案解决

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

 public Section(int minValue, int maxValue)
{
this.MinValue = minValue;
this.MaxValue = maxValue;
} /// <summary>
/// 存储最小值
/// </summary>
public int MinValue { get; set; } /// <summary>
/// 存储最大值
/// </summary>
public int MaxValue { get; set; }

2、初始化数据

   private static readonly List<Section> lstSections;

         static Program()
{
lstSections = new List<Section>
{
new Section(0x0020, 0x007F),
new Section(0x00A0, 0x017F),
new Section(0x01A0, 0x01CF),
new Section(0x01F0, 0x01FF),
new Section(0x0210, 0x021F),
new Section(0x1EA0, 0x1EFF)
}; }

用linq比较大小验证方法

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

调用该方法:

  static void Main(string[] args)
{ while (true)
{
Console.Write("请输入一个16进制数值:");
var input = Console.ReadLine();
if (input == "q")
{
break;
}
var result = ;
var b = int.TryParse(input.ToUpper(), NumberStyles.AllowHexSpecifier, null, out result);
if (b)
{
Console.WriteLine("{0}-{1}", input, IsValidSection(result) ? "在给定范围内" : "不在给定范围内");
}
else
{
Console.WriteLine("输入值错误");
}
} }

利用linq快速判断给定数字是否包含在某个段范围内的更多相关文章

  1. C语言中的位操作(12)--判断一个数字是否包含一个全零字节

    本文主要介绍一系列算法,算法主要功能是判断一个数字(二进制)中是否包含全零字节 e.g.1010 1111 0000 0000 1001 1111 0001 1111 即 32位整数:A4A3A2A1 ...

  2. ef linq 中判断实体中是否包含某集合

    我有一个需求,问题有很多标签,在查询时,需要筛选包含查询标签的一个集合(List<int>),以前的做法是先查询出来符合查询标签条件的标签id的结果集A,再查询问题时,加上判断是否包含该标 ...

  3. [CodeWars][JS]如何判断给定的数字是否整数

    问题描述: We are asking for a function to take a positive integer value, and return a list of all positi ...

  4. 给定一个只包含正整数的非空数组,返回该数组中重复次数最多的前N个数字 ,返回的结果按重复次数从多到少降序排列(N不存在取值非法的情况)

    """ #给定一个只包含正整数的非空数组,返回该数组中重复次数最多的前N个数字 #返回的结果按重复次数从多到少降序排列(N不存在取值非法的情况) 解题思路: 1.设定一个 ...

  5. iOS开发-通过正则表达式进行各种判断银行卡,车牌号,邮箱地址,QQ,身份证,全字母,仅输入字母或数字同时包含大小写字母和数字,仅能输入中文等

    /* *  验证银行卡号是否正确 *  车牌号验证 *  检验邮箱地址是否正确 *  手机号中间四位密文显示 *  判断QQ号是否正确(5-11位) *  判断身份证号是否正确(如末位为字母请用“x” ...

  6. 利用百度API(JavaScript 版)实现在地图上绘制任一多边形,并判断给定经纬度是否在多边形范围内。以及两点间的测距功能

    权声明:本文为博主原创文章,未经博主允许不得转载. 利用百度API(JavaScript 版)实现在地图上绘制任一多边形,并判断给定经纬度是否在多边形范围内.以及两点间的测距功能. 绘制多边形(蓝色) ...

  7. SQL Server判断某个字段是否包含中文/英文字符/数字

    原文:SQL Server判断某个字段是否包含中文/英文字符/数字 因最近在清理系统中的脏数据,需要查询某个字段是否包含中文/英文字符/数字的数据, 比较简单,仅以此篇博客做一个简单总结,方便以后查阅 ...

  8. javascript中按位操作的应用,如何快速取整 判断字符串是否是包含某字符串

    最近在看最基础的<javascript高级程序设计>看的灰常慢,看到按位运算这里,突然反思,这种鬼操作到底有什么实际的应用呢? 按位运算符有6个 & 按位与:a & b | ...

  9. SQL判断字符串里不包含字母

    Oracle: 方法一:通过To_Number 函数异常来判断,因为这个函数在转换不成功的时候是报错,所以只能用存储过程包装起来. CREATE OR REPLACE FUNCTION Is_Numb ...

随机推荐

  1. Ajaxupload插件超级简单使用(php的ci框架)

                         Ajaxupload简单使用  友情提示:1.蓝色文字为必修改内容.2.#字符后面是解释该代码段的主要内容  备注: 该实例是用php的ci框架直接接收图片并 ...

  2. TCP协议的3次握手与4次挥手过程详解

    1.前言 尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务.TCP提供一种面向连接的.可靠的字节流服务. 面向连接意味着两个使用TCP的应用(通常是一个客户和一 ...

  3. 加快AndroidStudio运行速度的方法

    之前用过其他人加速AndroidStudio构建速度的方法,确实在编译时有一定的效果 但是在实际使用中,随着项目越来越大,AndroidStudio有时还是会卡死,或者直接黑屏,我的笔记本是8g内存 ...

  4. SSH自定义标签

     一.标签处理类:package cn.conris.sys.form; import java.io.IOException; import java.util.Enumeration; impor ...

  5. HDFS文件系统基本文件命令、编程读写HDFS

    基本文件命令: 格式为:hadoop fs -cmd <args> cmd的命名通常与unix对应的命令名相同.例如,文件列表命令: hadoop fs -ls 1.添加目录和文件 HDF ...

  6. 关于谷歌android 4.3 ble问题

    随着BLE的逐渐壮大,越来越多的厂商开始支持BLE,在未来的一年里应该会慢慢普及,谷歌android4.3已经支持了自己的nexus4和uexus7 2013手机了,也就是说如果厂商采用谷歌已经实现d ...

  7. SQL*Net message to client

    SQL*Net message to client The server (foreground process) is sending a message to the client. 这个wait ...

  8. -_-#【响应式】matchMedia

    谈谈响应式Javascript <!DOCTYPE html> <html> <head> <meta charset="utf-8"&g ...

  9. Coprimes - SGU 102(求互质数,水)

    题目大意:给你一个正整数N,求出来不超过N 的并且与N互质的正整数的个数. 就是一个大水题~~~ 代码: #include<stdio.h> #include<string.h> ...

  10. 定制Centos系统(基于6.x)

    1.条件准备:      按照需求,最小化安装Centos原生系统           在安装后的系统中找到/root/install.log与/root/anaconda-ks.cfg文件     ...