检查列表是否包含其他列表中的项目

时间:2011-10-21 11:16:30

标签: c# asp.net

我有两个lists.Say

list1 ="a,b,c";
list2="d,a,c";

如何检查list1是否包含list2中的项目。我的意思是如何检查list2是否有

2 个答案:

答案 0 :(得分:5)

这些是字符串,而不是列表......

但是你可以这样做(根据评论更新):

List<string> MyIntersectionList = 
list1.Split ( ',' )
.Intersect (list2.Split ( ',' ))
.ToList();

因此MyIntersectionList包含两个字符串中的所有元素......

编辑 - 如果你真的有列表,那么以上变得更容易:

List<string> MyIntersectionList = list1.Intersect (list2).ToList();

答案 1 :(得分:2)

假设您的列表实际上是字符串中的逗号分隔值

您可以使用以下逻辑,即使您有许多元素,性能也会正常:

var list2Members = new HashSet<string>(list2.Split(','));
bool list1ItemsInList2 = list1.Split(',').All(item => list2Members.Contains(item));
相关问题