利用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 ...
随机推荐
- APUE读书笔记-第18章-终端I/O
18.1 引言 *终端I/O的用途很广泛,包括用于终端.计算机之间的直接连线.调制解调器以及打印机等等,所以终端I/O系统非常复杂 18.2 综述 *终端I/O有两种不同的工作模式: (1)规范模式输 ...
- truncate 空间不释放问题
SQL> set linesize 200 SQL> select segment_name, sum(bytes / 1024 / 1024/1024) from dba_segment ...
- 【POJ】2503 Babelfish
字典树简单题. #include <cstdio> #include <cstring> #include <cstdlib> typedef struct Tri ...
- oracle查询语句2【转载】
本文使用的实例表结构与表的数据如下: scott.emp员工表结构如下: SQL> DESC SCOTT.EMP; Name Type Nullable Defaul ...
- Unity之Avatar原理
今天花了一些时间理了理Unity的动画系统. 之前给不同模型配动画时没怎么在意,只知道用Avatar可以让一个模型使用另一个模型的动画.由于用的基本上都是人物模型,基本上没出现什么错误. 不过在用到异 ...
- 冒泡排序原理(BubbleSorted)
//简单的冒泡排序public class BubbleMath { public static void main(String[] args) { //分清楚数组的头和尾,开始为尾,最后为头,因为 ...
- lvs,haproxy,keepalived,heartbeat
lvs的是通过vrrp协议进行数据包转发的,提供的是4层的负载均衡.特点是效率高,只要你机器网卡抗的住就不是问题. haproxy可以提供4层或7层的数据转发服务,能做到7层的好处是可以根据服务所处的 ...
- [2013 ACM/ICPC Asia Regional Hangzhou Online J/1010]hdu 4747 Mex (线段树)
题意: + ;];;;], seg[rt << | ]);)) * fa.setv;) * fa.setv;;], seg[rt << | ], r - l + );;, ...
- BootStrap-table 客户端分页和服务端分页的区别
当服务器没有对数据进行分页时,前端页面设计又要求进行分页,要分开来设置. 服务端分页: responseHandler: function(data){ return data.response; } ...
- jQuery Animation实现CSS3动画
jQuery Animation的工作原理是通过将元素的CSS样式从一个状态改变为另一个状态.CSS属性值是逐渐改变的,这样就可以创建动画效果.只有数字值可创建动画(比如 "margin:3 ...