我试图为方法CheckResult编写一个通用方法,以便它可以跨不同的类使用。例如,如果我有一个泛型方法,那么唯一要更改的就是类名。这里是ClassA,另一种方法可以通过classB。
public bool CheckResult(Guid Id, List<ClassA> model,List<ClassA> existingEntities)
{
var ids = existingEntities?.Select(x => x.Id).Except(model.Select(x => x.Id)).ToList();
var check = existingEntities?.Where(o => ids.Any(c => c == o.Id && o.EffectiveTo >= DateTime.Today)).ToList();
check?.AddRange(model);
var dateModel = check.Select(x => new TimeInterval(x.EffectiveFrom, x.EffectiveTo)).ToList();
return true;
}public static bool OpTest<T>(T model, T existingEntities, Guid t) where T : class
{
// var existingEntities = smRepository.GetStationMapping(t, StatusEnum.ALL); //smRepository.GetStationMapping(t, StatusEnum.ALL);
var ids = existingEntities?.Select(x => x.Id).Except(model.Select(x => x.Id)).ToList();
var check = existingEntities?.Where(o => ids.Any(c => c == o.Id && o.EffectiveTo >= DateTime.Today)).ToList();
check?.AddRange(model);
var dateModel = check.Select(x => new TimeInterval(x.EffectiveFrom, x.EffectiveTo)).ToList();
return true;
}这是我第一次写泛型,任何帮助都是感谢的。代码出错了吗?
发布于 2016-09-07 20:25:52
public static bool OpTest<T>(List<T> model, List<T> existingEntities, Guid t) where T : class
{
// var existingEntities = smRepository.GetStationMapping(t, StatusEnum.ALL); //smRepository.GetStationMapping(t, StatusEnum.ALL);
var ids = existingEntities?.Select(x => x.Id).Except(model.Select(x => x.Id)).ToList();
var check = existingEntities?.Where(o => ids.Any(c => c == o.Id && o.EffectiveTo >= DateTime.Today)).ToList();
check?.AddRange(model);
var dateModel = check.Select(x => new TimeInterval(x.EffectiveFrom, x.EffectiveTo)).ToList();
return true;
}保持您的项目列表,否则您不能使用linq在它。
https://stackoverflow.com/questions/39378387
复制相似问题