代码之家  ›  专栏  ›  技术社区  ›  rwkiii

使用lambda按对象成员和第二个整数数组进行筛选[重复]

  •  0
  • rwkiii  · 技术社区  · 6 年前

    这个问题已经有了答案:

    我有一个整数数组:

    int[] numbers = { 1, 3, 5, 7, 9 };
    

    我还有一个包含整数的自定义对象数组。我想使用lambda将自定义对象的数组过滤为上面数字数组中匹配的整数。

    public class SomeStruct
    {
        public int MyNumber;
    }
    
    ArrayOfSomeStruct = ArrayOfSomeStruct
        .Where(m = m.MyNumber is contained in numbers array);
    

    这是怎么做到的?

    2 回复  |  直到 6 年前
        1
  •  3
  •   Christian Gollhardt    6 年前

    似乎你想要这样的东西:

    int[] numbers = { 1, 3, 5, 7, 9 };
    var numbersSet = numbers.ToHashset(); // for performance reason
    var filtered = arrayOfSomeStruct.Where(e => numbersSet.Contains(e.MyNumber));
    
        2
  •  3
  •   Pietro Nadalini    6 年前

    按照您的示例,我创建了一个示例 here

    如果数组元素的编号包含在“number”变量中,那么这是获取这些元素的代码。

    ArrayOfSomeStruct = ArrayOfSomeStruct.Where(x => numbers.Contains(x.MyNumber)).ToArray();