C# Linq包含/排除逻辑
我有一个包含Name和TypeId的include列表,我想为具有某个TypeId的给定项创建一个排除列表。但问题是,如果一个名称根本没有出现在列表中,那么它就不会从任何类型中排除 我该如何处理linqC# Linq包含/排除逻辑,c#,linq,C#,Linq,我有一个包含Name和TypeId的include列表,我想为具有某个TypeId的给定项创建一个排除列表。但问题是,如果一个名称根本没有出现在列表中,那么它就不会从任何类型中排除 我该如何处理linq List<NameTypeFilter> includeList = new List<NameTypeFilter>(); includeList.Add(new NameTypeFilter { N
List<NameTypeFilter> includeList = new List<NameTypeFilter>();
includeList.Add(new NameTypeFilter
{
Name = "N1",
Type = "T1"
});
MyItem myItem1 = new MyItem();
myItem1.Type = "T1";
MyItem myItem2 = new MyItem();
myItem1.Type = "T2";
MyItem myItem3 = new MyItem();
myItem1.Type = "T3";
// excludelist for myItem1 should contain nothing
// excludelist for myItem2 should contain N1
// excludelist for myItem3 should contain N1
includeList.Add(new NameTypeFilter
{
Name = "N2",
Type = "T2"
});
// excludelist for myItem1 should contain N2
// excludelist for myItem2 should contain N1
// excludelist for myItem3 should contain N1,N2
List includeList=新列表();
includeList.Add(新名称类型筛选器
{
Name=“N1”,
Type=“T1”
});
MyItem myItem1=新的MyItem();
myItem1.Type=“T1”;
MyItem myItem2=新的MyItem();
myItem1.Type=“T2”;
MyItem myItem3=新的MyItem();
myItem1.Type=“T3”;
//myItem1的excludelist不应包含任何内容
//myItem2的excludelist应包含N1
//myItem3的excludelist应包含N1
includeList.Add(新名称类型筛选器
{
Name=“N2”,
Type=“T2”
});
//myItem1的excludelist应包含N2
//myItem2的excludelist应包含N1
//myItem3的excludelist应包含N1、N2
如果您共享代码示例,将有助于更详细地理解您的查询
然而,根据我的假设,如果您将Linq条件与Linq的TakeWhile或SkipWhile一起添加,它可能会帮助您获得期望的结果
includeList.Where(y => !includeList.Any(z => z.Type == currentItemType && y.Name == z.Name))
我想这样就可以了请给出一些简单的例子来描述这个问题。你在你的列表上迭代并检查这个名字。如果不存在,则返回一个空列表。如果存在,则按TypeId筛选包含列表。添加了示例代码