我有Listn个项目.我希望将我的列表转换为新列表,其中不超过n个第一项.
示例n=3:
[1, 2, 3, 4, 5] => [1, 2, 3]
[1, 2] => [1, 2]
Run Code Online (Sandbox Code Playgroud)
最简单的方法是什么?
Dan*_*ker 13
如果您有C#3,请使用Take扩展方法:
var list = new [] {1, 2, 3, 4, 5};
var shortened = list.Take(3);
Run Code Online (Sandbox Code Playgroud)
请参阅:http://msdn.microsoft.com/en-us/library/bb503062.aspx
如果您有C#2,您可以编写等效的:
static IEnumerable<T> Take<T>(IEnumerable<T> source, int limit)
{
foreach (T item in source)
{
if (limit-- <= 0)
yield break;
yield return item;
}
}
Run Code Online (Sandbox Code Playgroud)
唯一的区别是它不是扩展方法:
var shortened = SomeClass.Take(list, 3);
Run Code Online (Sandbox Code Playgroud)
如果您没有LINQ,请尝试:
public List<int> GetFirstNElements(List<int> list, int n)
{
n = Math.Min(n, list.Count);
return list.GetRange(0, n);
}
Run Code Online (Sandbox Code Playgroud)
否则使用Take.