检查List1 <T>中的所有元素是否都在List2 <T> C#中

kar*_*tal 2 c# list

是否可以知道或检查List1中的所有元素是否属于List2的一部分?如果我有例子

List1 = { 1,2,3,4 }

List2 = { 1,2,3,5,6,4 }
Run Code Online (Sandbox Code Playgroud)

如果列表1中的所有元素都在列表2中,我希望得到True,否则为False

注意:没有ForLoop

列表可以是整数列表,字符串,...等

Hen*_*rik 17

using System.Linq;

bool allInList2 = !List1.Except(List2).Any();
Run Code Online (Sandbox Code Playgroud)


Chr*_*isF 8

你可以使用这个Intersect方法.

然后,如果结果与List1您知道的所有元素都包含在的长度相同List2.


Ric*_*lly 6

您可以使用HashSet.IsProperSubsetOf(或IsProperSupersetOf)方法,如下所示:

var hashset1 = new HashSet<int>(list1);
if (hashset1.IsProperSubsetOf(list2)) ...
Run Code Online (Sandbox Code Playgroud)


Ema*_*eco 5

最佳性能LINQ解决方案

此代码示例
-检查是否有任何元素b不属于在一个
-然后反转结果.

using System.Linq;
....
public static bool ContainsAllItems(List<T> a, List<T> b)
{
    return !b.Except(a).Any();
}
Run Code Online (Sandbox Code Playgroud)

最初在这里找到解决方案.