C# 查找元素在GenericList中是否可用

C# 查找元素在GenericList中是否可用,c#,generic-list,C#,Generic List,我有一个字符串[],它包含值{“data1”、“data2”、“data3”} 我有一个通用列表,其中包含 数据2 数据4 两张唱片 我想获取字符串[]和genericList中可用的常用数据。您是否尝试过类似的方法 string[] s = {"data1", "data2", "data3"}; List<string> list = new List<string> { "data2", "data3" }; var commonList = list.Inters

我有一个字符串[],它包含值{“data1”、“data2”、“data3”}

我有一个通用列表,其中包含

数据2

数据4

两张唱片


我想获取字符串[]和genericList中可用的常用数据。您是否尝试过类似的方法

string[] s = {"data1", "data2", "data3"};
List<string> list = new List<string> { "data2", "data3" };
var commonList = list.Intersect(s);
string[]s={“data1”、“data2”、“data3”};
列表=新列表{“data2”,“data3”};
var commonList=list.Intersect;

查看一下

假设它是一个
列表
,并且您使用的是.NET 3.5或更高版本,您可以使用从LINQ到对象的方法:

var intersection = stringArray.Intersect(stringList);
请注意,这将返回一个延迟计算的
IEnumerable
。如果在数组或列表中需要它,请调用相关方法:

var intersectionArray = stringArray.Intersect(stringList).ToArray();
// or
var intersectionList = stringArray.Intersect(stringList).ToList();

还请注意,这是一个集合操作-因此,即使在两个原始集合中都存在特定元素的重复,结果也不会包含任何重复项。

请查看
Intersect
扩展方法

string[]c1={“data1”、“data2”、“data3”};
字符串[]c2={“data2”,“data4”};
IEnumerable both=c1.相交(c2);
foreach(两个控制台中的字符串均为s)控制台;

将打印数据2。

列表的具体类型及其内容是什么?
  string[] c1 = { "data1", "data2", "data3" };
  string[] c2 = { "data2", "data4" };

  IEnumerable<string> both = c1.Intersect(c2);

  foreach (string s in both) Console.WriteLine(s);