내가 한 두 배열 :bool 배열의 인덱스를 false에서 true로 변경 했습니까?
bool[] oldValues = GetCurrentValuesFromSomewhere();
ChangeCurrentValues();
bool[] newValues = GetCurrentValuesFromSomewhere();
List<int> whichIndexsHasBeenChangedFromFalseToTrue = /* linq */
어떤 생각? 목록 대신에 bool[]
배열도 가능합니다.
var changedValues =
(from i in Enumerable.Range(0, oldValues.Length)
where !oldValues[i] && newValues[i]
select i)
.ToList();
을 아니면 유창 구문을 선호하는 경우 :
잠시 후에 테스트 해 보겠습니다. 하지만 Range에서 Length - 1이되어야합니까? – zgnilec
@zgnilec 아니요, 두 번째 인수는 반환 할 정수의 수가 아니고 반환 할 정수의 개수입니다. 예 : 'Enumerable.Range (0, 5)'는 '0', '1', '2', '3', '4'를 반환합니다. –
'Math.Min (oldValues.Length, newValues.Length)'에 갈 수 있는데, 크기가 같지 않을 수도 있지만,이 경우에는 문제가되지 않을 수도 있습니다. – Servy