私は多かれ少なかれレガシーな C# アプリケーションで開発していて、以前に書いたコードに出くわしました。しかし、どういうわけか、これはこれに対する良いアプローチではないと感じています。
このコードを改善するにはどうすればよいですか?
public static void RemoveEntries(DataTable source, ref DataTable destination, int indexSource, int indexDestination)
{
var arVals = new int[source.Rows.Count];
var i = 0;
foreach (DataRow sourceRow in source.Rows)
{
if (sourceRow.RowState != DataRowState.Deleted)
arVals.SetValue(sourceRow[indexSource], i);
i += 1;
}
foreach (
var destinationRow in
from DataRow row3
in destination.Rows
where arVals.Contains((int) row3[indexDestination])
where row3.RowState != DataRowState.Deleted
select row3
)
destinationRow.Delete();
}
前もって感謝します、bb