Imagine the following type:
public struct Account
{
public int Id;
public double Amount;
}
What is the best algorithm to synchronize two IList<Account>
in C# 2.0 ? (No linq) ?
The first list (L1) is the reference list, the second (L2) is the one to synchronize according to the first:
- All accounts in L2 that are no longer present in L1 must be deleted from L2
- All accounts in L2 that still exist in L1 must be updated (amount attribute)
- All accounts that are in L1 but not yet in L2 must be added to L2
The Id identifies accounts. It's no too hard to find a naive and working algorithm, but I would like to know if there is a smart solution to handle this scenario without ruining readability and perfs.
EDIT :
- Account type doesn't matter, is could be a class, has properties, equality members, etc.
- L1 and L2 are not sorted
- L2 items could not be replaced by L1 items, they must be updated (field by field, property by property)
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…