Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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# 字符串列表C上的Lambda连接#_C#_Linq_Lambda - Fatal编程技术网

C# 字符串列表C上的Lambda连接#

C# 字符串列表C上的Lambda连接#,c#,linq,lambda,C#,Linq,Lambda,我试图从两个列表中获取常见的电子邮件。但我的查询从未返回任何值 List<string> list1=new List<string>(); list1.Add("abc@gmail.com"); list1.Add("abc@hotmail.com"); List<string> list2=new List<string>(); list2.Add("abc@gmail.com"); var tempList = list1.Join(li

我试图从两个列表中获取常见的电子邮件。但我的查询从未返回任何值

List<string> list1=new List<string>();
list1.Add("abc@gmail.com");
list1.Add("abc@hotmail.com");

List<string> list2=new List<string>();
list2.Add("abc@gmail.com");

var tempList = list1.Join(list2, x => x, y=> y, (x,y) => x).Select(x => x);

只需使用intersect即可

var tempList = list1.Intersect(list2);

我无法复制您最初的问题。它给了我与此解决方案完全相同的响应。

我看到您的代码工作正常,可能是您忘记了调用ToList()来查看结果


它实际上并没有回答“为什么这样做有效,而这没有”的问题。@FloatingKiwi.Intersect()也有效。但是我想通过使用lambda表达式来实现。问题解决了。我在代码上做错了,但当我在这里错误地编写代码时,我把它写成了正确的格式。
.Select(x=>x)
实际上什么都不做。@YeldarKurmangaliyev是的,你是对的。它什么也不做。但是为什么连接没有返回任何内容呢?上面的代码工作正常。它的所有版本,包括你说没有的版本。如果没有可靠地再现您遇到的问题的好方法,就不可能提供有用的正确答案@PeterDuniho我在代码上做错了,但当我在这里错误地编写代码时,我把它写成了正确的格式。感谢您的更正:)它也可以在不使用.ToList()的情况下工作。我在代码上做错了,但当我在这里错误地编写代码时,我把它写成了正确的格式。但是谢谢你的快速回答。
 var result2 = from item1 in list1
               join item2 in list2
               on item1 equals item2
               select new { item1 };
var tempList = list1.Intersect(list2);