查找GenericList中是否有元素可用

时间:2010-12-17 07:33:28

标签: c# generic-list

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

我有一个包含

的GenericList

DATA2

data4

两条记录

我想获得在string []和genericList

中可用的公共数据

3 个答案:

答案 0 :(得分:5)

你有没有试过像

这样的东西
string[] s = {"data1", "data2", "data3"};
List<string> list = new List<string> { "data2", "data3" };
var commonList = list.Intersect(s);

查看Enumerable.Intersect Method (IEnumerable, IEnumerable)

答案 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