比如有这样一组字符串数据
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
*/
}