利用linq快速判断给定数字是否包含在某个段范围内
一、需求:
知道某段范围
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快速判断给定数字是否包含在某个段范围内的更多相关文章
- C语言中的位操作(12)--判断一个数字是否包含一个全零字节
本文主要介绍一系列算法,算法主要功能是判断一个数字(二进制)中是否包含全零字节 e.g.1010 1111 0000 0000 1001 1111 0001 1111 即 32位整数:A4A3A2A1 ...
- ef linq 中判断实体中是否包含某集合
我有一个需求,问题有很多标签,在查询时,需要筛选包含查询标签的一个集合(List<int>),以前的做法是先查询出来符合查询标签条件的标签id的结果集A,再查询问题时,加上判断是否包含该标 ...
- [CodeWars][JS]如何判断给定的数字是否整数
问题描述: We are asking for a function to take a positive integer value, and return a list of all positi ...
- 给定一个只包含正整数的非空数组,返回该数组中重复次数最多的前N个数字 ,返回的结果按重复次数从多到少降序排列(N不存在取值非法的情况)
""" #给定一个只包含正整数的非空数组,返回该数组中重复次数最多的前N个数字 #返回的结果按重复次数从多到少降序排列(N不存在取值非法的情况) 解题思路: 1.设定一个 ...
- iOS开发-通过正则表达式进行各种判断银行卡,车牌号,邮箱地址,QQ,身份证,全字母,仅输入字母或数字同时包含大小写字母和数字,仅能输入中文等
/* * 验证银行卡号是否正确 * 车牌号验证 * 检验邮箱地址是否正确 * 手机号中间四位密文显示 * 判断QQ号是否正确(5-11位) * 判断身份证号是否正确(如末位为字母请用“x” ...
- 利用百度API(JavaScript 版)实现在地图上绘制任一多边形,并判断给定经纬度是否在多边形范围内。以及两点间的测距功能
权声明:本文为博主原创文章,未经博主允许不得转载. 利用百度API(JavaScript 版)实现在地图上绘制任一多边形,并判断给定经纬度是否在多边形范围内.以及两点间的测距功能. 绘制多边形(蓝色) ...
- SQL Server判断某个字段是否包含中文/英文字符/数字
原文:SQL Server判断某个字段是否包含中文/英文字符/数字 因最近在清理系统中的脏数据,需要查询某个字段是否包含中文/英文字符/数字的数据, 比较简单,仅以此篇博客做一个简单总结,方便以后查阅 ...
- javascript中按位操作的应用,如何快速取整 判断字符串是否是包含某字符串
最近在看最基础的<javascript高级程序设计>看的灰常慢,看到按位运算这里,突然反思,这种鬼操作到底有什么实际的应用呢? 按位运算符有6个 & 按位与:a & b | ...
- SQL判断字符串里不包含字母
Oracle: 方法一:通过To_Number 函数异常来判断,因为这个函数在转换不成功的时候是报错,所以只能用存储过程包装起来. CREATE OR REPLACE FUNCTION Is_Numb ...
随机推荐
- [wikioi]数字三角形
http://wikioi.com/problem/1220/ 最基本经典的DP题目,唯一有点意思的是,自底向上计算会更简洁.另外对这种+方式累计的DP,可以直接把原来的存进去,然后再加,本质是不用在 ...
- ? super T ? extends T
? super T ?保存的是 T类型或者T类型的父类 ? extends T ?保存的是 T类型或者T类型的子类
- 遍历、显示ftp下的文件夹和文件信息
今天做了通过ftp读取ftp根目录下的所有文件夹和文件,嵌套文件夹查询,总共用到了一下代码: 1.FtpFile_Directory package com.hs.dts.web.ftp; impor ...
- WITH AS and materialize hints
WITH AS: 就是将一个子查询部分独立出来,有时候是为了提高SQL语句的可读性,有时候是为了提高SQL语句性能. 如果一个SQL语句中,某个表会被访问多次,而且每次访问的限制条件一样的话,就可以使 ...
- Win7 64位系统U盘安装Centos6.5双系统
(win764位旗舰版系统 Centos6.5亲测成功) 安装前准备: U盘.软碟通(UltraISO).CentOS-6.5-x86_64-bin-DVD1(DVD 2只是一些软件,安装系统只要DV ...
- flat ui switch 改变状态而不响应事件
Flat UI是一套精美的扁平风格 UI 工具包,基于 Twitter Bootstrap实现.这套界面工具包含许多基本的和复杂的 UI 部件,例如按钮,输入框,组合按钮,复选框,单选按钮,标签,菜单 ...
- Selenium API(C#)
1 Fetching a Page driver.Url = "http://www.google.com"; 2 Locating UI Elements (WebElement ...
- Java---基于TCP协议的相互即时通讯小程序
这是几年前,新浪的一个面试题~要求是3天之内实现~ 通过TCP 协议,建立一个服务器端. 通过配置服务器端的IP和端口: 客户端之间就可以相互通讯~ 上线了全部在线用户会收到你上线的通知. 下线了全部 ...
- 关于python的开发工具——Canopy
在学习和使用scikit-learn过程中,官方文档中推荐了两个IDE(Canopy and Anaconda),我分别在win7和mac下安装后,发现Canopy是可以用的.Anaconda没搞明白 ...
- maven怎么引入自定义jar的详细图文教程
1 首先找到你的maven的配置文件{你maven的路径}\conf\settings.xml,然后打开settings.xml,并修改你存放本地jar路径.如我想把我自己的jar放到C:\Users ...