Zipしたものをforeachで回すのが一番自然 IEnumerable<int> Hoge(IEnumerable<int> A, IEnumerable<int> B) { var i = 0; foreach (var eq in A.Zip(B, (a, b) => a == b)) { if (!eq) yield return i; i++; } }
自分はやらんけどLinqならこう dataA.Zip(dataB, (a, b) => a == b).Select((eq, i) => eq ? -1 : i).Where(i => i >= 0);