1

を使用してデータテーブルに入れられたコンテンツを表示する必要があるドロップダウンリストがありますSqlHelper.FillDataTable。for eachステートメントを使用して各値をリスト項目に入れ、その項目をドロップダウンリスト値に追加します。名前の最初の文字(これらはデータベースからの名前です)がAとKの間にある場合にのみ、このアイテムをドロップダウンリストに追加したいと思います。私が書いた現在のifステートメントでは、ドロップダウンに値が入力されません。リスト。現在のコードは次のとおりです。

ListItem NewItem = new ListItem();
NewItem.Text = dr_UsersToShow["ViewValue"].ToString();
NewItem.Value = dr_UsersToShow["DataValue"].ToString();
string str = Convert.ToString(NewItem.Text[0]);
if (String.Compare("str", "A", true) >= 0 && String.Compare("str", "K", true) <= 0)
{
    this.dlNewUserList.Items.Add(NewItem);
}
4

3 に答える 3

3

リテラルの「str」を「A」および「K」と比較しています。文字列 strを「A」および「K」と比較します。「str」から引用符を削除するだけです。

これを変える

if (String.Compare("str", "A", true) >= 0 && String.Compare("str", "K", true) <= 0)

これに

if (String.Compare(str, "A", true) >= 0 && String.Compare(str, "K", true) <= 0)
于 2012-05-30T16:42:35.300 に答える
0

「str」から引用符を削除する必要があります。ここでは、文字列「str」を比較していますが、これは私が確信しているものではありません。文字列変数strに含まれているものをすべて比較したいとします。

于 2012-05-30T16:43:40.697 に答える
0

if条件を次のように変更することもできます。

if (str[0] >= 'A' && str[0] <= 'K')

比較方法よりも効率的だと思います。それをもう少し読みやすくするために(実際には必要ではありませんが)、さらに一歩進んで次のことを行うことができます。

var firstChar = str[0];
if (firstChar >= 'A' && firstChar <= 'K')

true大文字と小文字を区別しないようにCompare関数に渡した元の質問を読み直すと、実際に必要なのは次のとおりです。

var firstChar = str[0].toUpper();
if (firstChar >= 'A' && firstChar <= 'K')
于 2012-05-30T17:33:32.123 に答える