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