【问题标题】:How to Convert Bit String to Boolean Array如何将位串转换为布尔数组
【发布时间】:2015-01-18 12:19:14
【问题描述】:

在 VB 或 C# 中,是否有一种简洁的方法(无循环)将字符串转换为布尔数组?我有一串表示星期几的二进制值(“0001100”),并希望转换为布尔数组(假、假、假、真、真、假、假)。

【问题讨论】:

  • 为什么这么害怕循环播放?
  • 为什么这么害怕简洁的解决方案?

标签: c# arrays vb.net boolean dayofweek


【解决方案1】:

不,没有将字符串转换为布尔数组的内置方法。

您必须通过循环字符串中的字符并检查每个字符的值来做到这一点,但您可以使用Select 方法轻松做到这一点:

bool[] days = daysString.Select(c => c == '1').ToArray();

【讨论】:

    【解决方案2】:

    您可以使用 LINQ 进行简单的转换:

    "0001100".Select(c => c == '1').ToArray();
    

    【讨论】:

      【解决方案3】:

      VB 版本

      Dim dayStr As String = "0001100"
      
      Dim daysB() As Boolean
      'using LINQ
      daysB = dayStr.Select(Function(ch) ch = "1").ToArray
      
      'using loop
      Dim daysB1(dayStr.Length - 1) As Boolean
      
      For idx As Integer = 0 To dayStr.Length - 1
          daysB1(idx) = dayStr(idx) = "1"
      Next
      

      【讨论】:

        猜你喜欢
        • 2015-02-23
        • 2013-07-04
        • 1970-01-01
        • 2016-01-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-12
        • 1970-01-01
        相关资源
        最近更新 更多