gpt4 book ai didi

c# - 如何根据 int 的位组合/连接数组的元素?

转载 作者:太空宇宙 更新时间:2023-11-03 19:25:17 25 4
gpt4 key购买 nike

我想根据输入的 int 值连接字符串(来自数组)。

例如:

int Input = 3;
string[] Items = {"A", "B", "C", "D"};
// output = "A, B"

// example 2: input = 8
// output = "D"

数组的第一个元素 (0) 应与输入值的最低有效位相关联。数组中的值与字符串连接,例如“,”或“+”。

执行此操作的好方法是什么?

最佳答案

那么,您想将输入值视为位掩码吗?

这应该有效:

int Input = 3;
string[] Items = {"A", "B", "C", "D"};

var bitMask = new BitArray(new[]{Input});
return Items.Where((c,i)=>bitMask.Get(i)).ToArray();

基本上,我所做的是将您的号码转换为 BitArray,这样我就可以轻松地分辨出您的号码中设置了哪些位,哪些位未设置。然后,我使用一点 Linq 根据是否设置了 BitArray 的相应索引,按索引过滤 Items 数组。

了解这仅在数组少于 sizeof(int)*8 (32) 个元素时才有效。除此之外,BitArray 将没有指向 Get() 的索引,除非您指定可以在传递给 BitArray 构造函数的 int[] 数组中链接在一起的其他整数值。

关于c# - 如何根据 int 的位组合/连接数组的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9136684/

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