0

文字列のリスト (_authorizedBks) から辞書のリスト (tr) を検索しようとしているこのコードのパフォーマンスを改善できますか。これを C# または .NET のサポート言語でコーディングするより良い方法はありますか?

for (int i = tr.Count - 1; i >= 0; i--)
{
     if (tr[i].ContainsKey("BK") && !_authorizedBks.Contains(tr[i]["BK"], StringComparer.CurrentCultureIgnoreCase))
     {
          removedBks.Add(tr[i]);
     }
}

// where tr is List<Dictionary<string, string>> 
// _authorizedBks is List<string>
// removedBks is List<Dictionary<string, string>> 
4

2 に答える 2

2

それらを検索したい場合はHashSet<T>、試してみてください。ハッシュセット内の検索は、O(1) で償却されます。

 HashSet<Dictionary<string, string>> tr = new HashSet<Dictionary<string, string>>();
 HashSet<string> _authorizedBks = new HashSet<string>();
于 2013-09-01T05:12:37.223 に答える
0

SortedListクラスを使用してから、 .BinarySearch()を使用します。

于 2013-09-17T02:32:04.453 に答える