我有两个可观察的收藏品
Collection1有一个类型,其中一个成员是一个字符串(称之为FileName)
Collection2有一个类型,其中一个成员是一个字符串(称之为ClientID)
文件名中包含clientID作为子字符串。因此,ClientID可能是" 12345"文件名可能是" OhLookFileFor12345goshdarnit.txt"。我需要找到一种方法将这些映射在一起。第一遍简单实现看起来像
foreach (var V in Clients)
{
foreach (var Q in aofVM.OrganizerFiles)
{
if (Q.FileName.Contains(V.ClientID))
{
// Match found
}
}
}
显然,这有点不太棒,但是还有其他更好/更快的标准方式
答案 0 :(得分:0)
如果集合很大,最好将Collection1中的FileName值列表放入后缀树中,然后对Collection2的每个成员使用查找。
有关C#中的示例后缀树实现,请参阅https://gist.github.com/axefrog/2373868。