如何在C#中的数组开始转向? [英] How to shift the start of an array in C#?

查看:107
本文介绍了如何在C#中的数组开始转向?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图重组基础上的数值中第一次出现的数组(从而模拟功能类似于一个圆阵。)

例如,下面的阵列中祝值6的第一次出现,成为新的第一个元素,和之前的元素成为后者:

所以:

  INT [] myArray的= {2,3,6,1,7,6};

变成了:

  myArray的= {6,1,7,6,2,3};

什么是最好的方式来实现这一目标?


解决方案

  INT [] myArray的= {2,3,6,1,7,6};
myArray的= myArray的
            .SkipWhile(I =>!I = 6)
            .Concat(myArray.TakeWhile(I =>!I = 6))
            .ToArray();

应该做的伎俩!

您将需要使用 System.Linq的;

I'm trying to reorganize an array based on the first occurrence of a value (thus simulating similar functionality to a circular array.)

For example, in the following array I wish the first occurrence of the value 6 to become the new first element, and prior elements to become the latter:

So:

int[] myArray = {2, 3, 6, 1, 7, 6};

Becomes:

myArray = {6, 1, 7, 6, 2, 3};

What is the "best" way to achieve this?

解决方案

int[] myArray = { 2, 3, 6, 1, 7, 6 };
myArray = myArray
            .SkipWhile(i => i != 6)
            .Concat(myArray.TakeWhile(i => i != 6))
            .ToArray();

Should do the trick!

You will need a using System.Linq;

这篇关于如何在C#中的数组开始转向?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆