【问题标题】:Foreach output into a boolean arrayForeach 输出到布尔数组
【发布时间】:2020-12-11 01:18:47
【问题描述】:

我想将我的 foreach 循环的输出“保存”到一个布尔数组中。解决这个问题的最简单方法是什么?

foreach(char est in resultss)
{
    
    int test = est - '0';
    tru = Convert.ToBoolean(test); // A Bool[] instead of Bool
    //  Console.WriteLine(tru);
}

我正在研究二进制时钟,并试图将 22 之类的数字转换为二进制(完成),而不是转换为 bool 数组。

【问题讨论】:

  • 帮助我们帮助您 - 分享一些示例数据以及您希望获得的结果。
  • var theArray = resultss.Select(x => Convert.ToBoolean(x - '0')).ToArray();
  • 我会试试的,谢谢!

标签: c# arrays foreach boolean


【解决方案1】:
 List<bool> list = new List<bool>();
 foreach(char est in resultss)
 {
     int test = est - '0';
     tru = Convert.ToBoolean(test);
     list.Add(tru);
 }

【讨论】:

  • 那是..完美!非常感谢!
  • 应该是list.Add(tru); C# 区分大小写...
  • @uk3ndt 请确保不要使用它 - 很少有充分的理由使用Convert.,在这种情况下Convert.ToBoolean 绝对是错误的使用方法。如果 OP 想要检查 est 是否为 '0',他们应该像 list.Add(est != '0') 一样简单地比较它。
  • 感谢您的通知,我按照您说的进行了更改 :))
【解决方案2】:

您可以为此使用 LINQ,请添加对 System.Linq 的引用并执行此操作。

var boolArray = resultss.Select(r => Convert.ToBoolean(r - '0')).ToArray();

【讨论】:

  • 第二个代码示例很好,但是第一个代码块和这个问题有什么关系呢?
  • 实际上Convert.ToBoolean 也是一个糟糕的建议......要么建议通过将所有内容转换为字符串并在每一行上解析回完整的字符串类型方法,要么使用更实用的方法r =&gt; r != '0'
  • @RufusL - 介绍 LINQ 以及它可以为您做什么。
  • @AlexeiLevenkov - 这不是真正的问题。
  • 我建议忽略 Linq 样本,因为它们会分散注意力并且不适用于问题。只需说明需要引用System.Linq 就足够了。
猜你喜欢
  • 1970-01-01
  • 2010-12-11
  • 2013-09-10
  • 2015-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多