使用Lambda按对象成员和第二个整数数组过滤

时间:2018-07-18 00:00:39

标签: c# lambda

我有一个整数数组:

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

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:3)

好像您想要这样的东西:

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