在庞大的字符串编译中找到等效的字符串

时间:2013-02-26 16:13:07

标签: c# string performance compilation

我编写了一个C#程序,它包含一个由标题列表组成的解析数据,而这些标题又包含一个用字符串表示的ID列表。

电子邮件:列表<标题> ;标题:列表< ID>

//一个随机ID(大约100但最多2000)唯一标识索引中的一个标头。我将解析后的所有ID上传到服务器,然后服务器在索引中搜索ID,删除相应的Header,并写入一个日志文件,其中包含删除的ID和不在索引上的ID。

我的下一步是解析LogFile以获取已删除的ID,并在我的编译中找到等效ID并标记其Header als Deleted。

Logparsing的结果是一个包含所有已成功删除ID的数组。

所以它看起来像这样:

foreach(string deletedID in deletedIDs){
   foreach(EMail mail in mails){
      foreach(Header header in mail.headers){
          if(header.Deleted == false){
             for(string iD in header) {
                if(deletedID == iD) header.Deleted = true;
             }
          }
      }
   }
}

我想知道,如果有更有效的方法来做到这一点(或更多的方式)

1 个答案:

答案 0 :(得分:1)

使用Dictionary来保存您的数据,使用ID作为密钥,EmailHeader作为值,这里似乎合理。这使您的搜索几乎是即时的。