gpt4 book ai didi

c# - 获取位数组中 1 的索引?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:15:26 26 4
gpt4 key购买 nike

friend 们,谁知道如何在位数组中获取 1 的索引并将其推送到数组中。一些功能或其他东西

我有一个 Uint16 ,在这里我想从这个变量中读取位并获取 1 的索引并将其放入数组或列表中

最佳答案

第 1 步,准备您的 BitArray:

 var bits = new BitArray (new[] { false, true, false, false, true, false, false });

第二步,改成你能理解的形式(List, 1=true, 0=false)

 var list = bits.Cast<bool> ().Select (x => x ? 1 : 0).ToList ();

第3步,现在你可以使用你已经知道的IndexOf

 int index = list.IndexOf (1); // index=1, it looks from left ot right

如果您想从右到左搜索,请在列表中使用 Reverse() 方法。

这不是最佳解决方案,但我认为它对您来说是最容易理解的。

编辑:

var bits = new BitArray (new[] { false, true, false, false, true, false, false });

var bitsWithIndex = bits.Cast<bool> () // we need to use Cast because BitArray does not provide generic IEnumerable
.Select ((bit, index) => new { Bit = bit, Index = index}); // projection, we will save bit indices

// now we will get indices of all true(1) bits [from left to right]
var indices = bitsWithIndex.Where (x => x.Bit == true).Select (x => x.Index).ToArray ();

关于c# - 获取位数组中 1 的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47468287/

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