0

3つの要素を持つ配列があります

string[] cat = new string[3] { "XBox360", "PS3", "Wii" };

次に、基本的に配列agianst aDataTableを比較し、特定の条件下で操作を行います。(私が書いていなかった)一致を実行するコードは次のとおりです。

drResults = dtResults.Select(String.Format("Cat = '{0}' AND Cat_Entries = '{1}'", category, cat[i]));

カテゴリ(Cat)変数には、カテゴリ番号とCat_Entriesがcat配列の要素を含みます。したがって、コードでは、drResult.Lenght>0の場合に操作を実行します。

私が理解していないのは、Format()内のコードが何をするのかということです。私はマイクロソフトの定義を見ていますが、私を思いとどまらせるのは「AND」です。また、中括弧{}の間の数字は、カテゴリ要素がゼロを置き換え、cat [i]が1を置き換えることをランタイムに通知する、順次インデックス指定子のようなものですか?

もちろん、これはすべてループや他のコードの中にありますが、それが実際に質問に追加されるとは思わないので、省略しました。

4

1 に答える 1

1

SelectメソッドはSQLの一部を受け取り、一致する行を返します。この場合、あなたは次のような行を探していますCat field = '<category>' AND the Cat_Entries field = '<cat[i]>'

Format関数は、文字列を作成するよりも優れた方法です。

"Cat = '" + category + "' AND Cat_Entries = '" + cat[i] + '"後者は読みにくく、いくつかの暫定文字列を作成する必要があるため、おそらく遅くなります。

{0}と{1}は、指定した変数を表す単なるプレースホルダーです。 カテゴリcat[i]。それぞれを好きなだけ何度でも任意の順序で再利用できます。たとえば、(愚かではありますが)持っていることは有効です。

String.Format("Cat_Entries = '{1}' AND Cat = '{0}' AND Cat = '{0}'", category, cat[i])
于 2013-03-11T22:56:10.627 に答える