C#如何基于高于特定值的整数创建子数组或过滤数组?

Fel*_*lix 0 c# arrays integer

我尝试过多个其他问题/答案,但没有成功.

我有一个包含从0到10不等的整数的数组.现在我需要一个只有高于8的整数的数组.

如何过滤或创建仅包含整数的子数组?

Jon*_*eet 6

听起来你想要LINQ.例如:

int[] largeIntegers = allIntegers.Where(x => x > 8).ToArray();
Run Code Online (Sandbox Code Playgroud)

根据需要,虽然做的事情,你可能不会真正需要的ToArray呼叫.例如:

IEnumerable<int> largeIntegers = allIntegers.Where(x => x > 8);
foreach (int value in largeIntegers)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

LINQ能够比,虽然过滤更多-我会强烈建议你适当的学习一下吧-有物质上关于它的净数额巨大.例如,我有一个关于LINQ to Objects完整博客系列 - 但LINQ也超越了进程内查询.

您可能还想阅读Eric Lippert的博客文章"被认为有些有害的数组",原因是在许多情况下更喜欢其他集合而不是数组.

另一种选择是使用Array.FindAll:

int[] largeIntegers = Array.FindAll(allIntegers, x => x > 8);
Run Code Online (Sandbox Code Playgroud)

...但这真的把你绑在阵列上.LINQ更通用.