【发布时间】:2015-04-23 02:31:34
【问题描述】:
我已经创建了这个方法,但是它有一个我无法解决的问题。
如何通过参数传递谓词?因为“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;
}
【问题讨论】:
-
那么你打算使用的类型参数是如何相关的呢?它们都是从 Account 继承的吗?
-
不,我有不同的表,其中大多数(可能全部)我可以使用 .Id 和 .IsActive 进行过滤。所以我可以通过参数或某种通用方式传递谓词来为我的所有通用对象使用 .Id 和 .IsActive?