DA0013: String.Split/String.Substring が頻繁に使用されていますDA0013: High usage of String.Split or String.Substring

規則 IDRule Id DA0013DA0013
カテゴリCategory .NET Framework の使用ガイド.NET Framework Usage Guidance
プロファイル方法Profiling methods サンプリングSampling
メッセージMessage String.Split 関数と String.Substring 関数の使用回数を少なくすることを検討してください。Consider reducing use of String.Split and String.Substring functions.
規則の種類Rule type 警告Warning

原因Cause

System.String.Split メソッドまたは System.String.Substring メソッドの呼び出しがプロファイル データの大きな割合を占めています。Calls to the System.String.Split or System.String.Substring methods are a significant portion of the profiling data. 文字列内に部分文字列が存在することをテストする場合は、System.String.IndexOf または System.String.IndexOfAny を使用することを検討してください。Consider using System.String.IndexOf or System.String.IndexOfAny if you are testing for the existence of a substring in a string.

規則の説明Rule Description

Split メソッドは、String オブジェクトを操作し、元の文字列の部分文字列を含む文字列の新しい配列を返します。The Split method operates on a String object and returns a new array of Strings that contains the substrings of the original. 関数は、返された配列オブジェクトにメモリを割り当て、検出された配列要素ごとに新しい String オブジェクトを割り当てます。The function allocates memory for the returned array object and allocates a new String object for each array element it finds. 同様に、Substr メソッドは String オブジェクトを操作し、要求された部分文字列と等しい新しい文字列を返します。Similarly, the Substr method operates on a String object and returns a new String that is equivalent to the substring that was requested.

メモリの割り当ての管理がアプリケーションで重要な場合、String.Split メソッドと String.Substr メソッドとは別のものを使用することを検討してください。If managing memory allocations is critical in your application, consider using alternatives to the String.Split and String.Substr methods. たとえば、IndexOf メソッドまたは IndexOfAny メソッドを使用すると、String クラスの新しいインスタンスを作成しなくても、文字列内の特定の部分文字列を見つけることができます。For example, you can use either the IndexOf or IndexOfAny method to locate a specific substring within a character String without creating a new instance of the String class.

警告の調査方法How to Investigate a Warning

[エラー一覧] ウィンドウに表示されたメッセージをダブルクリックして、サンプリング プロファイル データの関数の詳細ビューに移動します。Double-click the message in the Error List window to navigate to the Function Details View of the sampling profile data. 呼び出し関数を調べ、System.String.Split メソッドまたは System.String.Substr メソッドを最も頻繁に使用するプログラムのセクションを見つけます。Examine the calling functions to find the sections of the program that make the most frequent use of the System.String.Split or System.String.Substr methods. 可能な場合は、IndexOf メソッドまたは IndexOfAny メソッドを使用して、String クラスの新しいインスタンスを作成せずに、文字列内の特定の部分文字列を見つけます。If it is possible, use either the IndexOf or IndexOfAny method to locate a specific substring within a character String without creating a new instance of the String class.