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[]数组.
你可以使用这样的东西:
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)
| 归档时间: |
|
| 查看次数: |
1281 次 |
| 最近记录: |