Pet*_*ter 2 c# arrays string boolean
我们在数据库中有这个字段,表示一周中每一天的真/假标志:'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()))
};
Run Code Online (Sandbox Code Playgroud)
由于许多转换,我发现这种方式过于笨重.
将这个固定长度的字符串转换为bool数组的理想/最干净的方法是什么?
我知道你可以在for循环中写这个,但一周的天数永远不会改变,因此我认为这是更高效的方式.
Nol*_*rin 10
一点LINQ可以使这个任务变得非常简单:
var weekdaysEnabled = weekdayFrequency.Select(chr => chr == '1').ToArray();
Run Code Online (Sandbox Code Playgroud)
注意string已经实现了IEnumerable<char>,所以你可以直接在它上面使用LINQ方法.
| 归档时间: |
|
| 查看次数: |
7433 次 |
| 最近记录: |