我有一个包含值 {"data1","data2","data3"} 的字符串 []。
我有一个 GenericList 包含
数据2
数据4
两条记录
我想获取在 string[] 和 genericList 中可用的公共数据
我有一个包含值 {"data1","data2","data3"} 的字符串 []。
我有一个 GenericList 包含
数据2
数据4
两条记录
我想获取在 string[] 和 genericList 中可用的公共数据
你有没有尝试过类似的东西
string[] s = {"data1", "data2", "data3"};
List<string> list = new List<string> { "data2", "data3" };
var commonList = list.Intersect(s);
假设它是 aList<string>
并且您使用的是 .NET 3.5 或更高版本,您可以使用Intersect
LINQ to Objects 中的方法:
var intersection = stringArray.Intersect(stringList);
请注意,这将返回一个 lazily-evaluate IEnumerable<string>
。如果您需要它在数组或列表中,请调用相关方法:
var intersectionArray = stringArray.Intersect(stringList).ToArray();
// or
var intersectionList = stringArray.Intersect(stringList).ToList();
另请注意,这是一个集合操作 - 因此结果将不包含任何重复项,即使在两个原始集合中都存在特定元素的重复项。
看看这里Intersect
的扩展方法
string[] c1 = { "data1", "data2", "data3" };
string[] c2 = { "data2", "data4" };
IEnumerable<string> both = c1.Intersect(c2);
foreach (string s in both) Console.WriteLine(s);
将打印data2。