【问题标题】:How to invert boolean array?如何反转布尔数组?
【发布时间】:2021-04-01 06:22:09
【问题描述】:

有没有更简洁的方法来反转布尔数组?

var myBoolArray=new bool[]{true, true, true, true, true};
bool[] revertedArray=new bool[5];
for(int i=0;i<myBoolArray.Length;i++)
{
    revertedArray[i]=!myBoolArray[i];
}

Atm 我正在这样做,但它看起来真的很难看。

【问题讨论】:

  • new bool[5], 你怎么知道它的长度是 5?为什么不是基于myBoolArray.Lenght
  • 老实说,bool[] 是存储位数据的最糟糕的方式(至少不会变得愚蠢);在这种情况下,int(甚至是byte)将是非常可取的,但是对于未知的可能大的长度(而不是“最多 32”、“最多 64”等)有BitArray ,其中也有一个Not() 方法;猜猜Not() 做了什么!
  • 呃...这只是一个与真实代码相比的简单示例。

标签: c# arrays boolean


【解决方案1】:

使用 LINQ 有一种更简洁的方法,尽管这是唯一的好处:

bool[] invertedArray = myBoolArray.Select(b => !b).ToArray();

【讨论】:

  • @SomeBody 看来 OP 想要一个新数组。
猜你喜欢
  • 1970-01-01
  • 2017-08-25
  • 2012-11-23
  • 1970-01-01
  • 2020-02-23
  • 2013-07-04
  • 2014-12-20
  • 2014-08-10
  • 1970-01-01
相关资源
最近更新 更多