我已经创建了这种方法,但是有一个我无法解决的问题。
如何通过参数传递谓词?因为“ x.IsActive”,“ source.Id”和“ x.Id”不同,所以通常我将通过参数传递的所有对象都具有IsActive和Id属性。
public static Differences<T> CheckChanges<T>(List<T> sourceTable, List<T> destinationTable)
{
var differences = new Differences<T>();
foreach (var sourceItem in sourceTable.Where(x => x.IsActive))
{
var destinationItem = destinationTable.FirstOrDefault(x => x.Id == sourceItem.Id);
}
return differences;
}
如果您可以使所有对象都从一个公共接口继承,则可能会容易得多:
public interface IAccount
{
int Id { get; set; }
bool IsActive { get; set; }
}
然后,您的方法签名将看起来像这样:
public static Differences<IAccount> CheckChanges(List<IAccount> sourceTable, List<IAccount> destinationTable)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句