Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用lambda表达式比较两个列表_C# - Fatal编程技术网

C# 使用lambda表达式比较两个列表

C# 使用lambda表达式比较两个列表,c#,C#,我想得到一个基于两个列表lstJobs和lstpraudit的字符串列表。我想得到两个列表中常见的PlanId 这是我的密码- List<string> result=reviewModel.lstJobs.Select(x=>x.planId.Contains(reviewModel.lstPraudits.Slect(y=>y.PlanId).toList())); List result=reviewModel.lstJobs.Select(x=>x.planId

我想得到一个基于两个列表lstJobs和lstpraudit的字符串列表。我想得到两个列表中常见的PlanId

这是我的密码-

List<string> result=reviewModel.lstJobs.Select(x=>x.planId.Contains(reviewModel.lstPraudits.Slect(y=>y.PlanId).toList()));
List result=reviewModel.lstJobs.Select(x=>x.planId.Contains(reviewModel.lstPraudits.Slect(y=>y.planId.toList());

我在这里做错了什么。代码发出错误消息。

使用可枚举。相交

List<string> result = reviewModel.lstJobs.Select(x=> x.PlanId)
   .Intersect(reviewModel.lstPraudits.Select(y=> y.PlanId))
   .ToList();
List result=reviewModel.lstJobs.Select(x=>x.PlanId)
.Intersect(查看model.lstPraudits.Select(y=>y.PlanId))
.ToList();
我做错了什么


您的方法是错误的,因为
x.planId.Contains
将搜索子字符串,并且您正在将列表传递给该方法。无论如何,这是一种错误的方法,因为您不想比较子字符串。

使用Intersect是一种很好的方法。。但是如果你说你做错了什么,我会说你在重复错误的事情。根据appproach的查询应为:

List<string> result = reviewModel.lstJobs.Select(x => reviewModel.lstPraudits.Select(y=>y.PlanId).Contains(x.planId))
List result=reviewModel.lstJobs.Select(x=>reviewModel.lstPraudits.Select(y=>y.PlanId).Contains(x.PlanId))

使用
Where
在两个列表之间进行比较

List<string> result =
         reviewModel.Where(x => x.planId.Contains(reviewModel.lstPraudits.Select(y=>y.PlanId)))
         .ToList();
列出结果=
reviewModel.Where(x=>x.planId.Contains(reviewModel.lstPraudits.Select(y=>y.planId)))
.ToList();

错误消息的来源可能是拼写错误的标识符,如
Slect
toList
,除非您自己定义了这些方法。您拼写错误了select,planId的类型是什么?是收藏吗?此外,我在内部查询中看到Select的拼写错误。请确保并标记您认为有助于解决问题的答案。“代码给出错误消息”下次也提供此错误消息;)