C# 如何将FindByValue与一系列数字一起使用

C# 如何将FindByValue与一系列数字一起使用,c#,asp.net,C#,Asp.net,我希望在一行代码中使用FindByValue和一系列数字,而不是将其键入4次,在本例中,我希望按值查找以02开头的所有项目 if (DropDownList1.SelectedItem.Value == "01") { DropDownList2.Items.FindByValue("0201").Enabled = false; DropDownList2.Items.FindByValue("0202").Enabled = false; DropDownList2.

我希望在一行代码中使用FindByValue和一系列数字,而不是将其键入4次,在本例中,我希望按值查找以02开头的所有项目

if (DropDownList1.SelectedItem.Value == "01")
{
    DropDownList2.Items.FindByValue("0201").Enabled = false;
    DropDownList2.Items.FindByValue("0202").Enabled = false;
    DropDownList2.Items.FindByValue("0203").Enabled = false;
    DropDownList2.Items.FindByValue("0204").Enabled = false;
}

您可以使用这个Linq代码

DropDownList2.Items.Cast<ListItem>()
    .Where(x => x.Value.Substring(0, 2) == "02")
    .ToList()
    .ForEach(x => x.Enabled = false);

您可以使用这个Linq代码

DropDownList2.Items.Cast<ListItem>()
    .Where(x => x.Value.Substring(0, 2) == "02")
    .ToList()
    .ForEach(x => x.Enabled = false);

您还可以使用StartsWith代替Substring

.Where(x => x.Value.StartsWith("02") || x.Value.StartsWith("03"))

您还可以使用StartsWith代替Substring

.Where(x => x.Value.StartsWith("02") || x.Value.StartsWith("03"))

它起作用了,但是如果我现在想让所有的项目都以02和03开始,我该怎么做呢?简单,添加更多where子句。Wherex=>x.Value.Substring0,2==02 | | x.Value.Substring0,2==03最后一个问题代码的0,2是什么意思?它们是子字符串开始位置和长度的索引,请参阅。因此,在本例中,它意味着从位置0开始取2个字符。它起作用了,但如果我现在想要所有以02和03开头的项目,该怎么办?简单,添加更多where子句。其中x=>x.Value.Substring0,2==02 | | x.Value.Substring0,2==03最后一个问题,0是什么意思,代码的2?它们是子字符串的起始位置和长度的索引,请参阅。所以在这种情况下,它意味着从位置0开始取2个字符。