改变数组中的数据位置
本文关键字:数据 位置 数组 改变 | 更新日期: 2023-09-27 18:02:45
当用户在列表框中选择日期时,我想改变数组中的数据位置。我将在我的例题中向你展示
array = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
如果用户在列表框中选择text="Mar" value = 3结果数组应该像这样改变::
array = {"Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "Jan", "Feb"}
我怎么能这样做呢?谢谢你。
var array = new[] {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
var value = 3; // value >= 1
array = array.Skip(value - 1).Concat(array.Take(value - 1)).ToArray();
或
array = array.Select((_, i) => array[(i + value - 1) % array.Length]).ToArray();
生产:
3月4月五月小君7月8月9月10月11月12月1月2月
我相信最有效的方法是:
public string[] ShiftArray(string[] array, int shiftBy)
{
string[] newArray = new string[array.Length];
Array.Copy(array, shiftBy, newArray, 0, array.Length - shiftBy);
Array.Copy(array, 0, newArray, array.Length - shiftBy, shiftBy);
return newArray;
}