-2
List<int[]> A = ServiceItems.First()
.ServiceItemDetails.Select(x => new int[]{ x.Numbers}).ToList();

这给了我一个整数数组的列表。

我需要一个普通整数列表

我试过这个:

List<int> A = ServiceItems.First()
.ServiceItemDetails.Select(x => new int{ x.Numbers})
.ToList();

哎哟!

无法使用集合初始化类型 int....不实现 IEnumerable

我如何做到这一点,这里到底发生了什么?

谢谢!

4

6 回答 6

7

目前尚不清楚,因为您没有告诉我们是什么x.Numbers,但如果第一个代码真的给了您 aList<int[]>那么它可能很简单:

List<int> A = ServiceItems.First()
                          .ServiceItemDetails
                          .Select(x => x.Numbers)
                          .ToList();

如果是这种情况,并且x.Numbers确实single int,那么建议您尽可能重命名它 - 它目前听起来像是一个数字集合。

于 2013-06-17T19:20:01.227 回答
4

你不能把数组部分拿出来吗?

List<int> A = ServiceItems.First().
    ServiceItemDetails.Select(x => x.Numbers).ToList();
于 2013-06-17T19:18:27.300 回答
0

尝试

List<int> A = ServiceItems.First().ServiceItemDetails.SelectMany(x => x.Numbers).ToList();

SelectMany()的行为类似于 Select(),但具有“展平”结果集合的效果。

于 2013-06-17T19:19:01.557 回答
0

您的意思是要将整数数组列表展平为一个大整数列表吗?无需任何额外的排序/过滤/等。你可以使用.SelectMany(). 像这样的东西:

var integers = ServiceItems.First().ServiceItemDetails.SelectMany(s => s.Numbers);
于 2013-06-17T19:19:33.783 回答
0

我认为你只需要一个 SelectMany 来展平你的整数列表,就像这样......

List<int[]> A = ServiceItems.First().ServiceItemDetails.SelectMany(x => x.Numbers).ToList();
于 2013-06-17T19:19:34.520 回答
0
List<int[]> A = ServiceItems.First().ServiceItemDetails.Select(x => x.Numbers).ToList();

您不需要像初始化类那样初始化 int new int{...}int是一种值类型,您可以直接为其赋值。

于 2013-06-17T19:19:44.840 回答