C# 当差异集中有多个项时,除此之外仅返回1项
在C#中,尝试在两个字符串列表之间执行“除”。有一些差异,见下图。在idx 2和19中,请注意,这些是不同的。然而,List.Except方法只返回最后一个差异 我这样称呼它:C# 当差异集中有多个项时,除此之外仅返回1项,c#,list,except,C#,List,Except,在C#中,尝试在两个字符串列表之间执行“除”。有一些差异,见下图。在idx 2和19中,请注意,这些是不同的。然而,List.Except方法只返回最后一个差异 我这样称呼它:varx=expList.Except(actList) 返回结果中的1项:“站点” 我希望有两个项目:4001,“现场” 有人知道这是怎么回事吗 谢谢 不是“对称差”(请参阅),而是“设置差”: 第一个集合中未出现在第二个集合中的成员 因此,如果第一个列表是{4002},第二个{4001}则的结果将不包含4001 您可能
varx=expList.Except(actList)代码>
返回结果中的1项:“站点”
我希望有两个项目:4001,“现场”
有人知道这是怎么回事吗
谢谢
不是“对称差”(请参阅),而是“设置差”:
第一个集合中未出现在第二个集合中的成员
因此,如果第一个列表是{4002}
,第二个{4001}
则的结果将不包含4001
您可能正在寻找:不是“对称差”(请参阅),而是“设置差”:
第一个集合中未出现在第二个集合中的成员
因此,如果第一个列表是{4002}
,第二个{4001}
则的结果将不包含4001
您可能正在寻找:正如Alexei Levenkov提到的,可枚举。除了
不是“对称差异”
考虑:
new HashSet<string>(expList).SymmetricExceptWith(actList);
newhashset(expList.SymmetricExceptWith(actList);
正如阿列克谢·列文科夫(Alexei Levenkov)所提到的,是可枚举的。除了
不是“对称差异”
考虑:
new HashSet<string>(expList).SymmetricExceptWith(actList);
newhashset(expList.SymmetricExceptWith(actList);
您没有显示所有项目(请注意,索引从9->19跳转)-“4001”也必须存在于第一个列表中。索引10到18发生了什么事?请查看HashSet.SymmetricExceptWith()
。完美!这就是我需要的。谢谢PeteGO。您没有显示所有项目(请注意,索引从9->19跳转)-“4001”也必须存在于第一个列表中。索引10到18发生了什么事?请查看HashSet.SymmetricExceptWith()
。完美!这就是我需要的。谢谢你,彼得。啊,那是我的错。我认为这是一个对称的差异。我想没有Symm-Diff方法可用?啊,那是我的错误。我认为这是一个对称的差异。我想没有Symm-Diff方法可用?