首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 服务器 > 云计算 >

怎么查找多条信息中是否匹配已有的项

2012-04-11 
如何查找多条信息中是否匹配已有的项System.IO.StreamReader my new System.IO.StreamReader(Server.Map

如何查找多条信息中是否匹配已有的项
System.IO.StreamReader my = new System.IO.StreamReader(Server.MapPath(@"IP.txt"), System.Text.Encoding.Default);
  string line;
  int i = 0,
  soso = 0,
  baidu = 0,
  sogou = 0,
  youdao = 0,
  yahoo = 0;
  while ((line = my.ReadLine()) != null)
  {
  i++;
  if (line.Contains("Sosospider"))
  {
  soso++;
  }
  if (line.Contains("Baiduspider"))
  {
  baidu++;
  }
  if (line.Contains("Sogou"))
  {
  sogou++;
  }
  if (line.Contains("YoudaoBot"))
  {
  youdao++;
  }
  if (line.Contains("Yahoo! Slurp"))
  {
  yahoo++;
  }
   
  Response.Write(line + "<br />");

  }

-------------------------------

我是用一个集合存放Sosospider, Sogou等这些关键字,然后毎读一行数据就循环和集合中的关键字对比,匹配的话该累计值+1。不知这类算法如何优化,请教下大家。或者您对这个需求有什么建议,我洗耳恭听,谢谢。

[解决办法]
用两个ArrayList,一个存关键字,一个存统计数。

C# code
 while ((line = my.ReadLine()) != null)            {                i++;                for (int d = 0; d < keyword.Count; d++)                {                    if (line.Contains(keyword[d].ToString().Trim()))                    {                        int kc = Convert.ToInt16(keycounter[d]);                        keycounter[d] = (kc + 1).ToString().Trim();                    }                }                Response.Write(line + "<br />");            }
[解决办法]
i*j在很多情况下是远大于i+j的

热点排行