linq C#中的List与C++中的vector在初始化方面的比较

1yjd4xko  于 2023-01-15  发布在  C#
关注(0)|答案(2)|浏览(160)

在C++中,可以将向量初始化为
vector<int> nums1 (100, 4); // 100 integers with value 4
另外,还有一些类似的东西
vector<int> nums2 (nums1.begin() + 5, nums1.end() - 20);
在C#中是否有类似的列表?

qc6wkl3g

qc6wkl3g1#

您可以通过List这样做。

using System.Collections.Generic;
List<int> nums1 = new List<int>(Enumerable.Repeat(4,100)); //100 elements each with value 4
List<int> nums2 = new List<int>(nums1.Skip(5).Take(75)); // skip first 5 and take 75 elements
0lvr5msh

0lvr5msh2#

第一个是这样的:

var result = Enumerable.Repeat(4, 100);

第二个(我对C++不熟悉)是这样的(我想它的意思是从第五个元素到从末尾算起的第二十个元素):

var result2 = result.Skip(5).Take(75);

请注意,resultresult2都只是迭代器,因此是延迟求值的,调用ToListToArray实际上将通过执行查询来具体化集合。

相关问题