C# Linq列表<;字符串>;联盟

C# Linq列表<;字符串>;联盟,c#,linq,C#,Linq,如何使用Linq在两个字符串类型的通用列表之间查找公共项 例如,假设我有以下代码,我想得到一个包含item2和item3的列表: List<string> List1 = new List<string>(); List<string> List2 = new List<string>(); List1.Add("item1"); List1.Add("item2"); List1.Add("item3"); List2.Add("item2"

如何使用Linq在两个字符串类型的通用列表之间查找公共项

例如,假设我有以下代码,我想得到一个包含item2和item3的列表

List<string> List1 = new List<string>();
List<string> List2 = new List<string>();

List1.Add("item1");
List1.Add("item2");
List1.Add("item3");

List2.Add("item2");
List2.Add("item3");
List2.Add("item4");
List List1=新列表();
List List2=新列表();
清单1.添加(“项目1”);
清单1.添加(“项目2”);
清单1.添加(“第3项”);
清单2.添加(“项目2”);
清单2.添加(“第3项”);
清单2.添加(“第4项”);
另见:

  • 强烈建议:

将适用于valuetypes。

我知道LINQ已被标记,但只是为了完整性;如果LINQ不是一个选项

List<string> result = list1.FindAll(list2.Contains);
List result=list1.FindAll(list2.Contains);
那么:

var List3 = list1.Intersect(list2)

你的答案似乎有很大一部分与我的答案相交叉。
List<string> result = list1.FindAll(list2.Contains);
var List3 = list1.Intersect(list2)