C# 缩小列表<;xyz>;与林克

C# 缩小列表<;xyz>;与林克,c#,linq,C#,Linq,我想挑选一个清单,列出项目5-10,并创建一个相同类型的新清单。 使用Linq,我想到: List<xyz> collection = new <List>(); //fill collection with lots of data collection.AddRange( ... ); //Downsize here var q = from e in collection select e; q.ToArray(); List<xyz> smallco

我想挑选一个清单,列出项目5-10,并创建一个相同类型的新清单。 使用Linq,我想到:

List<xyz> collection = new <List>();
//fill collection with lots of data
collection.AddRange( ... );

//Downsize here
var q = from e in collection select e;
q.ToArray();
List<xyz> smallcollection = new List<xyz>()
smallcollection = q.Skip(5).Take(5);
列表集合=new();
//用大量数据填充集合
collection.AddRange(…);
//在这里缩小规模
var q=从集合中的e选择e;
q、 ToArray();
List smallcollection=新列表()
smallcollection=q.Skip(5)。Take(5);

我做错了什么?

只是
var newList=q.Skip(5)。Take(5)。ToList()
。。。您现有的代码正在创建许多对象,但没有使用它们;“
ToArray()
”和“
新列表()
”一样被丢弃。还有一个“
集合。选择(e=>e)
”,它没有太多。。。(隐藏在LINQ查询语法中)。

只是
var newList=q.Skip(5).Take(5).ToList()。。。您现有的代码正在创建许多对象,但没有使用它们;“
ToArray()
”和“
新列表()
”一样被丢弃。还有一个“
集合。选择(e=>e)
”,它没有太多。。。(隐藏在LINQ查询语法中)。

最后一行应该是

smallcollection = q.Skip(5).Take(5).ToList();
最后一行应该是

smallcollection = q.Skip(5).Take(5).ToList();

如果原始列表是
列表
,则根本不需要LINQ

您可以使用以下方法:

List<xyz> collection = new <List>();
//fill collection with lots of data
collection.AddRange( ... );


List<xyz> smallCollection = collection.GetRange(5, 5);
List<xyz> smallCollection = q.Skip(5).Take(5).ToList();
列表集合=new();
//用大量数据填充集合
collection.AddRange(…);
List smallCollection=collection.GetRange(5,5);

如果它不是一个
列表
,您可以像这样使用LINQ:

List<xyz> collection = new <List>();
//fill collection with lots of data
collection.AddRange( ... );


List<xyz> smallCollection = collection.GetRange(5, 5);
List<xyz> smallCollection = q.Skip(5).Take(5).ToList();
List smallCollection=q.Skip(5).Take(5).ToList();

如果原始列表是
列表
,则根本不需要LINQ

您可以使用以下方法:

List<xyz> collection = new <List>();
//fill collection with lots of data
collection.AddRange( ... );


List<xyz> smallCollection = collection.GetRange(5, 5);
List<xyz> smallCollection = q.Skip(5).Take(5).ToList();
列表集合=new();
//用大量数据填充集合
collection.AddRange(…);
List smallCollection=collection.GetRange(5,5);

如果它不是一个
列表
,您可以像这样使用LINQ:

List<xyz> collection = new <List>();
//fill collection with lots of data
collection.AddRange( ... );


List<xyz> smallCollection = collection.GetRange(5, 5);
List<xyz> smallCollection = q.Skip(5).Take(5).ToList();
List smallCollection=q.Skip(5).Take(5).ToList();

首先,发生了什么?结果如何错误?5-10为6项;你的意思是吃(6)?还是5-9?首先,会发生什么?结果如何错误?5-10为6项;你的意思是吃(6)?还是5-9?