Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用lambda删除数组中前2个字符所在的dropdownlist中的项_C#_Asp.net_Linq_Lambda_Drop Down Menu - Fatal编程技术网

C# 使用lambda删除数组中前2个字符所在的dropdownlist中的项

C# 使用lambda删除数组中前2个字符所在的dropdownlist中的项,c#,asp.net,linq,lambda,drop-down-menu,C#,Asp.net,Linq,Lambda,Drop Down Menu,Web.config: <add key="blacklistVendors" value="01,02"/> aspx string[]blacklistVendors=ConfigurationManager.AppSettings[“blacklistVendors”].Split(“,”); ddlvindor.Items.Cast().Where(i=>i.Value==“It”).ToList().ForEach(i=>ddlvindor.Items.Remove(

Web.config:

<add key="blacklistVendors" value="01,02"/>

aspx

string[]blacklistVendors=ConfigurationManager.AppSettings[“blacklistVendors”].Split(“,”);
ddlvindor.Items.Cast().Where(i=>i.Value==“It”).ToList().ForEach(i=>ddlvindor.Items.Remove(i));
我想将I.值更改为检查blacklistVendors字符串数组中是否存在该值的前两个字母。如果存在,它将删除dropdownlist中的项目

我想到了一些东西,但它有一个错误:

ddlTicketVendor.Items.Cast<ListItem>().Where(vendorSeries.Any(i => i.Value.Substring(0, 2))).ToList().ForEach(i => ddlTicketVendor.Items.Remove(i));
ddlTicketVendor.Items.Cast().Where(vendorSeries.Any(i=>i.Value.Substring(0,2))).ToList().ForEach(i=>ddlTicketVendor.Items.Remove(i));
当我放置vendorSeries时,似乎无法访问i.Value。是否在其中

错误:

错误39参数2:无法从“bool”转换为 'System.Func'

错误38“System.Collections.Generic.IEnumerable” 不包含“Where”和最佳扩展名的定义 方法重载 'System.Linq.Enumerable.Where(System.Collections.Generic.IEnumerable, System.Func“”具有一些无效参数


这是编译器抱怨的表达式:

vendorSeries.Any(i => i.Value.Substring(0, 2))
您无法将其传递到
其中
,因为它不是
函数

以下是如何修复它:

ddlTicketVendor.Items.Cast<ListItem>()
    .Select(i => new {Item = i, Prefix = i.Value.Substring(0, 2)})
    .Where(i => vendorSeries.Any(s => i.Prefix == s))
    .ToList()
    .ForEach(i => ddlTicketVendor.Items.Remove(i.Item));
ddlTicketVendor.Items.Cast<ListItem>()
    .Select(i => new {Item = i, Prefix = i.Value.Substring(0, 2)})
    .Where(i => vendorSeries.Any(s => i.Prefix == s))
    .ToList()
    .ForEach(i => ddlTicketVendor.Items.Remove(i.Item));
var bannedPrefix = new HashSet<string>(vendorSeries);
ddlTicketVendor.Items.Cast<ListItem>()
    .Where(i => !bannedPrefix.Contains(i.Value.Substring(0, 2)))
    .ToList()
    .ForEach(i => ddlTicketVendor.Items.Remove(i));