【发布时间】:2023-04-11 05:15:01
【问题描述】:
我想要做的是,给定一个数组,选择列表中具有偶数/奇数索引的项目。
我会更好地解释:如果我有一个像 [1,4,6,2,8] 这样的数组,我想将所有具有 even position 的项目添加到列表 (evenList) 中(位置零、二、四等)。 ) 在数组中(在本例中为 1,6,8)。
奇数物品也一样。
我已经开发了以下代码,但我卡住了。
class CheckItem
{
static readonly string myNumber = "5784230137691";
static int[] firstTwelveList = new int[12];
static int[] arrayEvenPosition = new int[(myNumber.Length / 2)];
static int[] arrayOddPosition = new int[(myNumber.Length / 2)];
static readonly int idx = 0;
public static void Position()
{
firstTwelveList = myNumber.Substring(0, 12).Select(c => c - '0').ToArray();
foreach (var even in firstTwelveList)
{
if(Array.IndexOf(firstTwelveList, idx) % 2 == 0) //never enter here...
{
Array.Copy(firstTwelveList, arrayEvenPosition, (myNumber.Length / 2));
}
}
Console.ReadLine();
}
}
我期望arrayEvenPosition 将包含5,8,2,0,3,6,1 和arrayOddPosition 7,4,3,1,7,9
【问题讨论】:
-
您是否已使用调试器进行调试?你发现了什么?另外,为什么都是静态成员?
-
卡住是什么意思;能具体点吗?
-
试试 Linq:
var result source.Where((item, index) => index % 2 == 0).ToArray(); -
@maccettura 使用调试器我发现它不执行 IndexOf() 语句
-
@Link 那为什么?如果您从未进入 foreach 循环,那么您可能没有什么可循环的...
firstTwelveList的价值是什么?
标签: c# arrays indexing position