我尝试结合多个其他问题/答案,但没有成功。
我有一个数组,其中包含从 0 到 10 的整数。现在我需要一个数组,其中只有大于 8 的整数。
如何过滤或创建仅包含这些整数的子数组?
听起来你想要 LINQ。例如:
int[] largeIntegers = allIntegers.Where(x => x > 8).ToArray();
但是,根据您需要做的事情,您可能并不真的需要这个ToArray
电话。例如:
IEnumerable<int> largeIntegers = allIntegers.Where(x => x > 8);
foreach (int value in largeIntegers)
{
...
}
虽然LINQ 的功能远不止过滤 - 我强烈建议您正确了解它 - 网上有大量关于它的材料。例如,我有一个关于 LINQ to Objects 的完整博客系列——但 LINQ 也不仅仅是进程内查询。
您可能还想阅读 Eric Lippert 的博客文章“数组被认为有些有害”,因为在许多情况下,您更喜欢其他集合而不是数组。
另一种选择是使用Array.FindAll
:
int[] largeIntegers = Array.FindAll(allIntegers, x => x > 8);
...但这确实将您与数组联系在一起。LINQ 更通用。
您可以使用LINQ过滤您的数组:
var filteredArray = existingArray.Where(x => x > 8).ToArray();
您可以使用LinQ:
(from num in array where num > 8 select num).ToArray();
您也可以尝试:
var filteredArray = yourArray.Where(c => c >8);