如何在ObservableCollections之间映射字符串

时间:2014-08-28 19:51:39

标签: string algorithm

我有两个可观察的收藏品  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
                }
            }
        }

显然,这有点不太棒,但是还有其他更好/更快的标准方式

1 个答案:

答案 0 :(得分:0)

如果集合很大,最好将Collection1中的FileName值列表放入后缀树中,然后对Collection2的每个成员使用查找。

有关C#中的示例后缀树实现,请参阅https://gist.github.com/axefrog/2373868