利用linq快速判断给定数字是否包含在某个段范围内
2014-04-24 08:08
417 查看
一、需求:
知道某段范围
0x0020~0x007F
0x00A0~0x017F
0x01A0~0x01CF
0x01F0~0x01FF
0x0210~0x021F
0x1EA0~0x1EFF
给定一个值,快速判断给定值是否在以上编码范围内
二、解决方案
用面向对象的方案解决
1、每个段都有一个最小值,一个最大值,定义一个类
2、初始化数据
用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 > 0; }
调用该方法:
static void Main(string[] args) { while (true) { Console.Write("请输入一个16进制数值:"); var input = Console.ReadLine(); if (input == "q") { break; } var result = 0; var b = int.TryParse(input.ToUpper(), NumberStyles.AllowHexSpecifier, null, out result); if (b) { Console.WriteLine("{0}-{1}", input, IsValidSection(result) ? "在给定范围内" : "不在给定范围内"); } else { Console.WriteLine("输入值错误"); } } }
相关文章推荐
- 面试题:给定一个长度为N的数组,其中每个元素的取值范围都是1到N。判断数组中是否有重复的数字
- 给定一个长度为N的数组,其中每个元素的取值范围都是1到N。判断数组中是否有重复的数字。(原数组不必保留)
- 利用百度API(JavaScript 版)实现在地图上绘制任一多边形,并判断给定经纬度是否在多边形范围内。以及两点间的测距功能
- 利用百度API(JavaScript 版)实现在地图上绘制任一多边形,并判断给定经纬度是否在多边形范围内。以及两点间的测距功能
- 利用百度API(JavaScript 版)实现在地图上绘制任一多边形,并判断给定经纬度是否在多边形范围内。以及两点间的测距功能
- java中判断一个字符串是否“都为数字”和“是否包含数字”和“截取数字”
- 一个长度为N的整形数组,数组中每个元素的取值范围是[0,N-1],写一个算法判断数组中是否存在重复的数字
- 判断是否包含数字
- php 快速判断一个数字属于什么范围的实现方法
- C# 判断输入的字符串是否只包含数字和英文字母
- 如何利用一些小工具快速判断电脑是否中毒
- 判断多选框的值是否在指定范围内/判断多选框的值是否包含在另一组值中
- java中判断一个字符串是否“都为数字”和“是否包含数字”和“截取数字”
- 判断数组中是否包含重复数字
- 处理ip,java判断ip是否在指定的ip段范围内,给定的ip地址是否在某个ip段范围内,将字符串形式IP地址转换long类型
- 利用JDK函数判断字符串是否数字的几种方法
- 对给定的字符串(只包含'z','o','j'三种字符),判断他是否能AC。
- 给定一个字符串,判断该字符串中是否包含某个子串.如果包含, 求出子串的所有出现位置
- 给定两个排好序的整型数组,怎么判断它们是否含有相同的数字?
- java用正则表达式判断字符串中是否仅包含英文字母、数字和汉字