当前位置: 代码迷 >> C# >> 求个字符串淘选过滤的简单写法
  详细解决方案

求个字符串淘选过滤的简单写法

热度:137   发布时间:2016-04-28 08:41:27.0
求个字符串筛选过滤的简单写法
比如有这样一组字符串数据

ABCDEFG
ACDEASDF
AD12AXEWD
XDWEFSF
XIWIWASDF
BASERWRA

还有一组 KEY

比如 
list<string>  keys ={
A
AC
X
B
BX
}


将string数据与KEY 对比 取出数据开头最应该匹配的KEY

比如 string s1 =BASERWRA 那么 KEY 就是B

而如果 string s1  = ACDEASDF  那么KEY 应该是 AC (不能是A)

Keys.Where(p => (!string.IsNullOrWhiteSpace(p.Key)) && str.StartsWith(p.Key)).SingleOrDefault(); // 这样A 和 AC 会被同时满足 就抛异常了

KEYS 基本固定  但是需要匹配的数据是随机的... 

所以请大家帮忙看看有什么比较合适的办法确认








------解决思路----------------------
void Main()
{
var  keys =new string[]{
"A",
"AC",
"X",
"B",
"BX"
};
var arry=new string[]{
"ABCDEFG",
"ACDEASDF",
"AD12AXEWD",
"XDWEFSF",
"XIWIWASDF",
"BASERWRA"};
foreach(var item in arry)
{
   var query=keys.Where(x=>item.StartsWith(x)).OrderByDescending(x=>x.Length).FirstOrDefault();
   Console.WriteLine("{0} -- {1}", item,query);
}

/*
ABCDEFG -- A
ACDEASDF -- AC
AD12AXEWD -- A
XDWEFSF -- X
XIWIWASDF -- X
BASERWRA -- B
*/
}
  相关解决方案