C# 在c中使用linq比较每个值的两个交换列表#
这是我的箱子C# 在c中使用linq比较每个值的两个交换列表#,c#,linq,C#,Linq,这是我的箱子 ListA "1", "2", "3" ListB "2", "1", "3" 如果ListA==ListB,=>它应该返回true,因为ListA值在ListB中 ListA "1", "2", "3" ListB "1", "2", "3", "4" =>由于列表中没有4的ListB,因此它应该返回false。 有人能帮你吗?你需要使用除了,然后使用任何 var result = !ListB.Except(ListA).Any(); 您需要使用除之外的,然后使用任何
ListA "1", "2", "3"
ListB "2", "1", "3"
如果ListA==ListB,=>它应该返回true,因为ListA值在ListB中
ListA "1", "2", "3"
ListB "1", "2", "3", "4"
=>由于列表中没有4的ListB,因此它应该返回false。
有人能帮你吗?你需要使用
除了,然后使用任何
var result = !ListB.Except(ListA).Any();
您需要使用除
之外的,然后使用任何
var result = !ListB.Except(ListA).Any();
如果列表仅包含唯一的值,则可以使用HashSet
和方法
newhashset(listA).SetEquals(newhashset(listB))代码>如果列表仅包含唯一值,则可以使用哈希集和方法
newhashset(listA).SetEquals(newhashset(listB))代码>尝试使用HashSet而不是lists如果LISTA“1”、“2”、“3”和LISTB“2”、“1”、“3”、“3”会发生什么?还是你担心那个案子?我想你是对的。我提出的解决方案已经使用sequenceequal和orderby在那里了。@KSib实际上它是无效的,因为它有重复的值。无论如何,它应该返回false,因为ListA和LisB长度不相等。感谢您的澄清。我想你的答案是在@Sinatr链接中。你可能会尝试使用HashSet而不是lists。如果LISTA“1”、“2”、“3”和LISTB“2”、“1”、“3”、“3”会发生什么?还是你担心那个案子?我想你是对的。我提出的解决方案已经使用sequenceequal和orderby在那里了。@KSib实际上它是无效的,因为它有重复的值。无论如何,它应该返回false,因为ListA和LisB长度不相等。感谢您的澄清。我认为您的答案在@Sinatr-makey-posted链接中。如果列表B中没有出现重复值,则该链接将起作用。@Ksib:duplicate也可以。假设ListB
有一个额外的3,结果仍然返回true
。这对你来说不是问题,我正在为cgsabari澄清,如果他不介意重复,这是可以的。如果他真的介意复制,那么这就行不通了。实际上,这似乎不适合他的要求,因为他刚才评论说,如果ListB中没有出现重复的值,这将起作用。@Ksib:duplicate也可以。假设ListB
有一个额外的3,结果仍然返回true
。这对你来说不是问题,我正在为cgsabari澄清,如果他不介意重复,这是可以的。如果他真的介意复制,那么这就行不通了。实际上,正如他刚才评论的那样,这看起来不适合他的要求