查找bool数组中的索引从false更改为true?

apo*_*pse 1 .net c# linq arrays boolean

我有两个数组:

bool[] oldValues = GetCurrentValuesFromSomewhere ();

ChangeCurrentValues ();

bool[] newValues = GetCurrentValuesFromSomewhere ();

List<int> whichIndexsHasBeenChangedFromFalseToTrue = /* linq */
Run Code Online (Sandbox Code Playgroud)

任何的想法?而不是列表,它也可以是bool[]数组.

p.s*_*w.g 7

你可以使用这样的东西:

var changedValues =
    (from i in Enumerable.Range(0, oldValues.Length)
     where !oldValues[i] && newValues[i]
     select i)
    .ToList();
Run Code Online (Sandbox Code Playgroud)

或者如果您更喜欢流利的语法:

var changedValues = Enumerable
     .Range(0, oldValues.Length)
     .Where(i => !oldValues[i] && newValues[i])
     .ToList();
Run Code Online (Sandbox Code Playgroud)

如果你想要一个bool[]结果,你可以使用这个:

var changedValues =
    (from i in Enumerable.Range(0, oldValues.Length)
     select !oldValues[i] && newValues[i])
    .ToArray();
Run Code Online (Sandbox Code Playgroud)

或者用流利的语法:

var changedValues = Enumerable
     .Range(0, oldValues.Length)
     .Select(i => !oldValues[i] && newValues[i])
     .ToArray();
Run Code Online (Sandbox Code Playgroud)