获取数组的索引并删除该索引剩下的所有内容
我有一个 int
数组,
int[] RowOfints = 1,2,3,4,5,6,7,8,9;
如果我输入例如值 4
,我想从数组中删除 1,2,3
并返回剩下的内容。 怎么做呢?
I have an array of int
s
int[] RowOfints = 1,2,3,4,5,6,7,8,9;
if i enter for example value 4
i want to remove 1,2,3
from array and return what's left.
How to do that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
如果您不想使用 LINQ:
If you don't want to use LINQ:
在 LINQ 中使用 Skip 扩展。
Using Skip extension in LINQ.
我正在解释您的问题,即您想要找到值
4
的索引,然后从该索引位置开始获取所有内容。result
将是由4 .. 9
组成的IEnumerable
。如果您想要一个具体的数组,您也可以使用可选的ToArray()
扩展方法。如果数组中没有元素符合给定的条件,您将得到一个零长度序列。I'm interpreting your question that you want to find the index for the value
4
and then take everything starting from that index position.result
will be anIEnumerable<int>
consisting of4 .. 9
. If you want a concrete array, you can use the optionalToArray()
extension method as well. If no elements in the array match the given criteria, you will get a zero-length sequence.好的,既然我更好地理解了这个问题,我将发布我的实际需求版本(再次反常地强调效率而不是可读性):
旧答案
如果你想努力做到这一点(但高效!)方式,那么你可以这样做(假设你想删除小于提供值的值):
OK, now that I understand the question better, I will post my version of the actual requirements (again perversely emphasising effeciency over readability):
OLD ANSWER
If you want to do it the hard (but efficient!) way, then you can do this (assuming you want to remove values less than the supplied value):
对于具有此类型的连续整数数组,
您的数组不必是连续的
For a sequential array of ints
with this one your array does not have to be sequential
使用 System.Linq;
....
using System.Linq;
....