繁体   English   中英

将char Array / string转换为bool Array

[英]Convert char Array/string to bool Array

我们在数据库中有这个字段,表示一周中每一天的真/假标志:'1111110'

我需要将此值转换为布尔数组。

为此我写了以下代码:

char[] freqs = weekdayFrequency.ToCharArray();
bool[] weekdaysEnabled = new bool[]{
    Convert.ToBoolean(int.Parse(freqs[0].ToString())), 
    Convert.ToBoolean(int.Parse(freqs[1].ToString())),
    Convert.ToBoolean(int.Parse(freqs[2].ToString())),
    Convert.ToBoolean(int.Parse(freqs[3].ToString())),
    Convert.ToBoolean(int.Parse(freqs[4].ToString())),
    Convert.ToBoolean(int.Parse(freqs[5].ToString())),
    Convert.ToBoolean(int.Parse(freqs[6].ToString()))
};

由于许多转换,我发现这种方式过于笨重。

将这个固定长度的字符串转换为bool数组的理想/最干净的方法是什么?

我知道你可以在for循环中写这个,但一周的天数永远不会改变,因此我认为这是更高效的方式。

一点LINQ可以使这个任务变得非常简单:

var weekdaysEnabled = weekdayFrequency.Select(chr => chr == '1').ToArray();

请注意, string已经实现了IEnumerable<char> ,因此您可以直接使用LINQ方法。

在.NET 2中

bool[] weekdaysEnabled1 =
Array.ConvertAll<char, bool>(
    freqs,
    new Converter<char, bool>(delegate(char c) { return Convert.ToBoolean(int.Parse(freqs[0].ToString())); }));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM