-1

我需要一个仅包含值 0 和 1 的数组。bool[]对我来说足够好吗?或者有没有更轻的东西?

编辑:

我没有内存限制,但是该数组是制作并在线传递的,大文件与该数组同时传递。我想要最大优化,这样大文件就不会被延迟

4

4 回答 4

2

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

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

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

取决于您的约束,如果它不是用于受约束的环境,则 bool 数组将可以正常工作。

于 2012-09-07T10:35:38.560 回答
1

布尔数组已经足够好了。您可以将“假”视为0,将“真”视为1

于 2012-09-07T10:34:26.973 回答
1

可能你需要 BitArray1 ,和的序列0

于 2012-09-07T10:35:03.630 回答
0

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

使用Enum带有Flags属性的 an 是另一种选择。这将允许您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!");
于 2012-09-07T10:40:40.150 回答