0

我有一个包含值 {"data1","data2","data3"} 的字符串 []。

我有一个 GenericList 包含

数据2

数据4

两条记录

我想获取在 string[] 和 genericList 中可用的公共数据

4

3 回答 3

5

你有没有尝试过类似的东西

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

看看Enumerable.Intersect Method (IEnumerable, IEnumerable)

于 2010-12-17T07:37:36.213 回答
2

假设它是 aList<string>并且您使用的是 .NET 3.5 或更高版本,您可以使用IntersectLINQ to Objects 中的方法:

var intersection = stringArray.Intersect(stringList);

请注意,这将返回一个 lazily-evaluate IEnumerable<string>。如果您需要它在数组或列表中,请调用相关方法:

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

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

于 2010-12-17T07:38:10.157 回答
0

看看这里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

于 2010-12-17T07:41:41.413 回答