0

我尝试结合多个其他问题/答案,但没有成功。

我有一个数组,其中包含从 0 到 10 的整数。现在我需要一个数组,其中只有大于 8 的整数。

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

4

3 回答 3

6

听起来你想要 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 更通用。

于 2012-06-05T14:03:52.217 回答
3

您可以使用LINQ过滤您的数组:

var filteredArray = existingArray.Where(x => x > 8).ToArray();
于 2012-06-05T14:03:58.123 回答
0

您可以使用LinQ

(from num in array where num > 8 select num).ToArray();

您也可以尝试:

var filteredArray = yourArray.Where(c => c >8);
于 2012-06-05T14:03:49.947 回答