【问题标题】:LINQ query to combine two string[] arraysLINQ 查询以组合两个字符串 [] 数组
【发布时间】:2020-04-06 17:22:41
【问题描述】:

我有这种情况,我有两个字符串数组。

string[] array1 = new string[] { "aa", "bb", "cc"};
string[] array2 = new string[] { "abcd", "abbc", "abc", "cc", "abb" };

我想使用 linq 查询仅从 array2 中选择其中包含任何至少一个项目形式 array1 的项目。

所以在这种情况下,我想得到回应:

{ "abbc", "cc", "abb" };

我正在使用 linq 开始我的工作,所以请给我一些解释我做错了什么。在这一点上,这是我最好的尝试:

var res = array2.Select(n => array1.Select( c=> c.Contains(n))).ToArray();

但它会返回:

array[] {array1, array1, array1, array1, array1}

【问题讨论】:

    标签: c# linq


    【解决方案1】:

    问题在于,通过使用 array1.Select(c=> c.Contains()),您返回了一个布尔值集合(包含:是/否)。

    var res = array2.Where(x => array1.Any(y => x.Contains(y))).ToArray();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-11
      • 1970-01-01
      • 1970-01-01
      • 2010-11-25
      • 1970-01-01
      相关资源
      最近更新 更多