我需要一个只包含值0和1的数组。bool[]
对我来说是否足够好?或者是否有更轻的重量?
修改
我没有内存限制但是该数组已经生成并且在线传递All The Time与大文件同时传递给该数组。我想要最大化优化,所以大文件不会被延迟
答案 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)
您可能需要BitArray,1
和0
的序列。
答案 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!");