私のクラスの割り当てには、古いリストのリストと新しいリストを比較し、新しい生徒を追加し、削除された生徒を追加し、別のリストに移動する必要があります。 LINQではなくネストされたforeachループを使用していますが、古い学生リストが新しい学生のエントリと一致し、古いリストの次の学生に移動すると、ループから抜け出しています。C# - foreachを使って2つのオブジェクトのリストを比較する
私のコードはネストされたforeachを実行し、古いリストの最初のエントリとエントリを比較します。その結果、IDが一致することなく結果が出てきますので、削除されたリストに入れてループを終了します古いリストの次の生徒。
public static void CompareStudents(List<Student> oldList, List<Student> newList)
{
foreach (Student o in oldList)
{
foreach (Student n in newList)
{
if (FindStudent(o.ID, n.ID))
{
if (CheckChanges(o, n))
{
changed.Add(n);
break;
}
}
else
{
removed.Add(o);
break;
}
}
}
}
private static bool FindStudent(string oldID, string newID)
{
if (newID.Equals(oldID))
{
return true;
}
else
{
return false;
}
}
public static bool CheckChanges(Student oldStu, Student newStu)
{
if (oldStu.FirstName.Equals(newStu.FirstName) &&
oldStu.LastName.Equals(newStu.LastName) &&
oldStu.StudentYear.Equals(newStu.StudentYear) &&
oldStu.StudentRank.Equals(newStu.StudentRank))
{
return false;
}
else
{
return true;
}
}
あなたのご質問は何ですか?あなたの宿題を終わらせたいだけですか? –
http://stackoverflow.com/questions/5636438/difference-between-two-lists – Fredrik
削除されたリストはどこで宣言されていますか?あなたの要件は明確ではありません。 – CRice