使用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);

这是怎么做到的?

看起来你想要这样的东西:

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

根据您的示例,我在这里创建了一个示例

如果数组中的元素的数字包含在"number"变量中,则该代码将获取数组中的这些元素。

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

最新更新