using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.Reflection;
using System.Text.RegularExpressions;
namespace ConsoleApplication1
{
public static class Program
{
/// <summary>
/// 入口函数
/// </summary>
/// <param name="args"></param>
static void Main( string[] args)
{
List< string> oldStrList = new List< string>()
{
" 12 ", " ZH ", " CN ", " 2E ", " 0A ", " 56 ", " FF ", " 00 "
};
Console.Write( " Old List: " + oldStrList.Count + " -> ");
foreach ( string str in oldStrList) Console.Write(str + " ");
Console.WriteLine( "");
List< string> newHexList = oldStrList.HexFilter(
(p) =>
{
bool blStatus = false;
try
{
Convert.ToInt32(p, 16); blStatus = true;
}
catch
{
blStatus = false;
}
return blStatus;
}
).ToList();
Console.Write( " New List: " + newHexList.Count + " -> ");
foreach ( string str in newHexList) Console.Write(str + " ");
Console.ReadLine();
}
/// <summary>
/// 过滤掉非十六进制字符
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="source"></param>
/// <param name="predicate"></param>
/// <returns></returns>
static IEnumerable<T> HexFilter<T>( this IEnumerable<T> source, Func<T, bool> predicate)
{
foreach (T item in source)
{
if (predicate(item)) yield return item;
}
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.Reflection;
using System.Text.RegularExpressions;
namespace ConsoleApplication1
{
public static class Program
{
/// <summary>
/// 入口函数
/// </summary>
/// <param name="args"></param>
static void Main( string[] args)
{
List< string> oldStrList = new List< string>()
{
" 12 ", " ZH ", " CN ", " 2E ", " 0A ", " 56 ", " FF ", " 00 "
};
Console.Write( " Old List: " + oldStrList.Count + " -> ");
foreach ( string str in oldStrList) Console.Write(str + " ");
Console.WriteLine( "");
List< string> newHexList = oldStrList.HexFilter(
(p) =>
{
bool blStatus = false;
try
{
Convert.ToInt32(p, 16); blStatus = true;
}
catch
{
blStatus = false;
}
return blStatus;
}
).ToList();
Console.Write( " New List: " + newHexList.Count + " -> ");
foreach ( string str in newHexList) Console.Write(str + " ");
Console.ReadLine();
}
/// <summary>
/// 过滤掉非十六进制字符
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="source"></param>
/// <param name="predicate"></param>
/// <returns></returns>
static IEnumerable<T> HexFilter<T>( this IEnumerable<T> source, Func<T, bool> predicate)
{
foreach (T item in source)
{
if (predicate(item)) yield return item;
}
}
}
}