gpt4 book ai didi

c# - 从另一个 int[] 中的值构建 int[]

转载 作者:太空狗 更新时间:2023-10-30 00:52:03 27 4
gpt4 key购买 nike

我有一个 int[] building; 我想根据另一个数组 int[] info; 动态实例化它

info 将保存 int 范围从 0-48

要构建 building 数组。如果 info 数组中的索引 ind 有一个非零值,我想添加building 数组的索引。

因此,如果 info 看起来像这样 {0, 12, 24, 48} 我想构建以显示 {1, 2, 3} 另一个例子 {12, 0, 0, 48} -> {0, 3}

是否有一个简洁的衬里来完成这个?

我是怎么做到的

int[] info = new int[]{12, 0, 0, 48};
List<int> indxs = new List<int>();
for (int i = 0; i < info.Length; i++)
if (info [i] > 0)
indxs.Add(i);
int[] building = indxs.ToArray();

最佳答案

var building = info.Select((i, idx) => i == 0 ? -1 : idx)
.Where(i => i != -1)
.ToArray();

这将为您提供与现在相同的数组。

这是我用来证明它的整个控制台应用程序:

class Program
{
static void Main(string[] args)
{
int[] info = new int[] { 12, 0, 0, 48 };
List<int> indxs = new List<int>();
for (int i = 0; i < info.Length; i++)
if (info[i] > 0)
indxs.Add(i);
int[] building = indxs.ToArray();

var newBuilding = info.Select((i, idx) => i == 0 ? -1 : idx)
.Where(i => i != -1)
.ToArray();
}
}

buildingnewBuilding 都为您提供相同的输出。

关于c# - 从另一个 int[] 中的值构建 int[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23679303/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com