仅包含0和1值的数组

时间:2012-09-07 10:33:30

标签: c# arrays data-structures

我需要一个只包含值0和1的数组。bool[]对我来说是否足够好?或者是否有更轻的重量?

修改

我没有内存限制但是该数组已经生成并且在线传递All The Time与大文件同时传递给该数组。我想要最大化优化,所以大文件不会被延迟

4 个答案:

答案 0 :(得分:2)

布尔可能不是最好的方法。取决于你有多少号码。

重要的是要意识到即使bool是单个位,它也需要内存中的完整字节。

另一方面,BitArray会为您解决这个问题,并且空间效率更高,尽管时间效率稍差。 http://msdn.microsoft.com/en-us/library/system.collections.bitarray.aspx

取决于你的约束,如果它不适用于受约束的环境,bool数组就可以正常工作。

答案 1 :(得分:1)

Bool Array足够好了。您可以将“false”视为0,将“true”视为1

答案 2 :(得分:1)

您可能需要BitArray10的序列。

答案 3 :(得分:0)

bool[]可以解决问题......如果你的0& 1个数字实际上只是“标志”而不是实数。

使用Enum Flags属性是另一种选择。这将允许您为两个布尔值都有Intention Revealing Name

[Flags()]
public enum TheFlags
{
    NoneSet = 0,
    FirstSet = 1,
    SecondSet = 2
}

然后你可以检查“First”是否设置如下:

TheFlags flags = TheFlags.FirstSet;
if (flags.HasFlag(TheFlags.FirstSet))
    Console.WriteLine("First flag is set!");