C# 仅当字符串的第一个字母介于A和K之间时,才将项添加到下拉列表中

C# 仅当字符串的第一个字母介于A和K之间时,才将项添加到下拉列表中,c#,C#,我有一个下拉列表,需要显示使用SqlHelper.FillDataTable放入数据表的内容。我使用for-each语句将每个值放入一个列表项中,然后将该项添加到下拉列表值中。仅当名称的第一个字母(这些是数据库中的名称)介于a和K之间时,我才想将此项添加到下拉列表中。我编写的当前if语句不会将任何值放入下拉列表中。以下是当前代码: ListItem NewItem = new ListItem(); NewItem.Text = dr_UsersToShow["ViewValue"].ToStr

我有一个下拉列表,需要显示使用
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);
}
ListItem NewItem=新ListItem();
NewItem.Text=dr_UsersToShow[“ViewValue”].ToString();
NewItem.Value=dr_UsersToShow[“DataValue”].ToString();
string str=Convert.ToString(NewItem.Text[0]);

如果(String.Compare(“str”,“A”,true)>=0&&String.Compare(“str”,“K”,true)您正在将文本“str”与“A”和“K”进行比较。您希望将字符串
str
与“A”和“K”进行比较。只需删除“str”中的引号即可

改变这个

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

如果(String.Compare(“str”,“A”,true)>=0&&String.Compare(“str”,“K”,true)=0&&String.Compare(str,“K”,true)您应该删除“str”中的引号,这里是比较字符串“str”我敢肯定,这不是您想要的。您想要比较字符串变量str中包含的内容。

您还可以将if条件更改为:

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

我总是忽略这样的事情。谢谢!
if (str[0] >= 'A' && str[0] <= 'K')
var firstChar = str[0];
if (firstChar >= 'A' && firstChar <= 'K')
var firstChar = str[0].toUpper();
if (firstChar >= 'A' && firstChar <= 'K')