代码改变世界

模糊查找字符串

2010-07-21 09:02  starlet  阅读(1405)  评论(0)    收藏  举报
例如:镀铬U型盾面立体格栅,多层次豪华光亮饰条,防紫外线绿色隔热玻璃,防爆玻璃,内隐式印刷天线,欧风动感鲨鱼鳍天,精铸铝合金轮毂,绿色节能轮胎205/55 R16,运动型抛光双尾管
想查处带“玻璃”的项
即:防紫外线绿色隔热玻璃,防爆玻璃
 
就需要遍历整个字符串数组,并且模糊查询
 
利用list FindAll方法实现上述要求:
 
直接贴码:
 
 1         /// <summary>
 2         /// 提取源字符串中,包含关键字的字符串
 3         /// </summary>
 4         /// <param name="sourceStr">原字符串 半角逗号分割</param>
 5         /// <param name="keywordStr">关键字字符串 /分割多关键字</param>
 6         private string PickupKeyword(string sourceStr,string keywordStr)
 7         {
 8             //分割并放置list项
 9             string[] DStandSetStringV = sourceStr.Split(',');
10             List<string> l = new List<string>();
11             for (int i = 0; i < DStandSetStringV.Length; i++)
12             {
13                 l.Add(DStandSetStringV[i]);
14 
15             }
16             string b = keywordStr;
17             string[] bf = b.Split('/');
18             string valString = string.Empty;
19             foreach (string bfString in bf)
20             {
21                 List<string> ttl = l.FindAll(delegate(string t) { return t.IndexOf(bfString) > -1; });
22                 for (int j = 0; j < ttl.Count; j++)
23                 {
24                     if (j == 0 && valString == string.Empty)
25                     {
26                         valString += ttl[j].ToString();
27                     }
28                     else
29                     {
30                         valString += "," + ttl[j].ToString();
31                     }
32 
33                 }
34             }
35 
36             return valString;
37         }