判断一个model的三个属性的值是否为空和相同,结果写了6个判断出来,好多重复的,但是又不知道怎么简化
因为都是循环改o.xxx的值,也不好写通用方法,传值进去改 private static List<CZCombineDN> CheckList(List<CZCombineDN> uploadDataList)
{
var SOLDTOCUSTOMERList = uploadDataList.Select(o => o.SOLDTOCUSTOMER.FieldText).Distinct();
if (SOLDTOCUSTOMERList.Count() > 1)
{
uploadDataList.ForEach(o =>
{
o.CheckResult.CheckResult = false;
o.SOLDTOCUSTOMER.CheckResult = false;
o.SOLDTOCUSTOMER.CheckMsg.Add(new CheckMsg() { MsgType = MessageType.Failure, Msg = GlobalizationHelper.GetMessage("XXXXX") });
});
}
if (SOLDTOCUSTOMERList.Any(x => string.IsNullOrEmpty(x)))
{
uploadDataList.ForEach(o =>
{
o.CheckResult.CheckResult = false;
o.SOLDTOCUSTOMER.CheckResult = false;
o.SOLDTOCUSTOMER.CheckMsg.Add(new CheckMsg() { MsgType = MessageType.Failure, Msg = GlobalizationHelper.GetMessage("XXXXX") });
});
} var DESTINATIONList = uploadDataList.Select(o => o.DESTINATION.FieldText).Distinct();
if (DESTINATIONList.Count() > 1)
{
uploadDataList.ForEach(o =>
{
o.CheckResult.CheckResult = false;
o.DESTINATION.CheckResult = false;
o.DESTINATION.CheckMsg.Add(new CheckMsg() { MsgType = MessageType.Failure, Msg = GlobalizationHelper.GetMessage("XXXXX") });
});
}
if (DESTINATIONList.Any(x => string.IsNullOrEmpty(x)))
{
uploadDataList.ForEach(o =>
{
o.CheckResult.CheckResult = false;
o.DESTINATION.CheckResult = false;
o.DESTINATION.CheckMsg.Add(new CheckMsg() { MsgType = MessageType.Failure, Msg = GlobalizationHelper.GetMessage("XXXXX") });
});
} var ETADATEList = uploadDataList.Select(o => o.ETADATE.FieldText).Distinct();
if (ETADATEList.Count() > 1)
{
uploadDataList.ForEach(o =>
{
o.CheckResult.CheckResult = false;
o.ETADATE.CheckResult = false;
o.ETADATE.CheckMsg.Add(new CheckMsg() { MsgType = MessageType.Failure, Msg = GlobalizationHelper.GetMessage("XXXXX") });
});
}
if (ETADATEList.Any(x => string.IsNullOrEmpty(x)))
{
uploadDataList.ForEach(o =>
{
o.CheckResult.CheckResult = false;
o.ETADATE.CheckResult = false;
o.ETADATE.CheckMsg.Add(new CheckMsg() { MsgType = MessageType.Failure, Msg = GlobalizationHelper.GetMessage("XXXXX") });
});
} return uploadDataList;
}
因为都是循环改o.xxx的值,也不好写通用方法,传值进去改 private static List<CZCombineDN> CheckList(List<CZCombineDN> uploadDataList)
{
var SOLDTOCUSTOMERList = uploadDataList.Select(o => o.SOLDTOCUSTOMER.FieldText).Distinct();
if (SOLDTOCUSTOMERList.Count() > 1)
{
uploadDataList.ForEach(o =>
{
o.CheckResult.CheckResult = false;
o.SOLDTOCUSTOMER.CheckResult = false;
o.SOLDTOCUSTOMER.CheckMsg.Add(new CheckMsg() { MsgType = MessageType.Failure, Msg = GlobalizationHelper.GetMessage("XXXXX") });
});
}
if (SOLDTOCUSTOMERList.Any(x => string.IsNullOrEmpty(x)))
{
uploadDataList.ForEach(o =>
{
o.CheckResult.CheckResult = false;
o.SOLDTOCUSTOMER.CheckResult = false;
o.SOLDTOCUSTOMER.CheckMsg.Add(new CheckMsg() { MsgType = MessageType.Failure, Msg = GlobalizationHelper.GetMessage("XXXXX") });
});
} var DESTINATIONList = uploadDataList.Select(o => o.DESTINATION.FieldText).Distinct();
if (DESTINATIONList.Count() > 1)
{
uploadDataList.ForEach(o =>
{
o.CheckResult.CheckResult = false;
o.DESTINATION.CheckResult = false;
o.DESTINATION.CheckMsg.Add(new CheckMsg() { MsgType = MessageType.Failure, Msg = GlobalizationHelper.GetMessage("XXXXX") });
});
}
if (DESTINATIONList.Any(x => string.IsNullOrEmpty(x)))
{
uploadDataList.ForEach(o =>
{
o.CheckResult.CheckResult = false;
o.DESTINATION.CheckResult = false;
o.DESTINATION.CheckMsg.Add(new CheckMsg() { MsgType = MessageType.Failure, Msg = GlobalizationHelper.GetMessage("XXXXX") });
});
} var ETADATEList = uploadDataList.Select(o => o.ETADATE.FieldText).Distinct();
if (ETADATEList.Count() > 1)
{
uploadDataList.ForEach(o =>
{
o.CheckResult.CheckResult = false;
o.ETADATE.CheckResult = false;
o.ETADATE.CheckMsg.Add(new CheckMsg() { MsgType = MessageType.Failure, Msg = GlobalizationHelper.GetMessage("XXXXX") });
});
}
if (ETADATEList.Any(x => string.IsNullOrEmpty(x)))
{
uploadDataList.ForEach(o =>
{
o.CheckResult.CheckResult = false;
o.ETADATE.CheckResult = false;
o.ETADATE.CheckMsg.Add(new CheckMsg() { MsgType = MessageType.Failure, Msg = GlobalizationHelper.GetMessage("XXXXX") });
});
} return uploadDataList;
}
解决方案 »
- 求解释url=url+"&sid="+Math.random();的意思
- 中文字符乱码问题?
- DataTable 如何添加行?
- 请问从事ASP.NET+C#是在上海好还是在杭州好?
- 学ASP.NET 前必须会那些语言,请各位.NET高手指教
- Asp.net和C#页面关联的问题
- htmlTable鼠标经过事件问题,请高手指教。
- 一个小问题
- 有关vs2005部署问题
- 这段代码。。。是什么意思。。。硬是没有看懂。。有什么意义。。计算出来的。。有什么用昵。。特别是后面那些计算。。。硬是没有搞懂。。。。。。。。。。知道的来看一下。
- JS在IE7能执行,到IE9及以上都不行,在Frame中
- pc QQ转发消息
//这个判断不相等就全部标记为false,这个是对的
if (SOLDTOCUSTOMERList.Count() > 1)
{
uploadDataList.ForEach(o =>
{
o.CheckResult.CheckResult = false;
o.SOLDTOCUSTOMER.CheckResult = false;
o.SOLDTOCUSTOMER.CheckMsg.Add(new CheckMsg() { MsgType = MessageType.Failure, Msg = GlobalizationHelper.GetMessage("XXXXX") });
});
}
//这个先判断为空,然后循环按理说应该是全部都标记了false才对,结果只有为空的标记了是为什么,虽然我想要的确实是这个效果
if (SOLDTOCUSTOMERList.Any(x => string.IsNullOrEmpty(x)))
{
uploadDataList.ForEach(o =>
{
o.CheckResult.CheckResult = false;
o.SOLDTOCUSTOMER.CheckResult = false;
o.SOLDTOCUSTOMER.CheckMsg.Add(new CheckMsg() { MsgType = MessageType.Failure, Msg = GlobalizationHelper.GetMessage("XXXXX") });
});
}
uploadDataList.ForEach(o =>
{
o.CheckResult.CheckResult = false;
o.SOLDTOCUSTOMER.CheckResult = false;
o.SOLDTOCUSTOMER.CheckMsg.Add(new CheckMsg() { MsgType = MessageType.Failure, Msg = GlobalizationHelper.GetMessage("XXXXX") });
});不同之处在于,每段中,有所不同:
o.SOLDTOCUSTOMER
o.DESTINATION
o.ETADATE也简单,把这三个属性,从统一的接口继承,此接口包含CheckResult ,CheckMsg属性。最后,方法传入uploadDataList,而方法本身参数,使用接口
{
var SOLDTOCUSTOMERList = uploadDataList.Select(o => o.SOLDTOCUSTOMER.FieldText).Distinct();
if (SOLDTOCUSTOMERList.Count() > 1)
{
Fun( uploadDataList, "SOLDTOCUSTOMER");
}
if (SOLDTOCUSTOMERList.Any(x => string.IsNullOrEmpty(x)))
{
Fun( uploadDataList, "SOLDTOCUSTOMER");
}
var DESTINATIONList = uploadDataList.Select(o => o.DESTINATION.FieldText).Distinct();
if (DESTINATIONList.Count() > 1)
{
Fun( uploadDataList, "DESTINATION");
}
if (DESTINATIONList.Any(x => string.IsNullOrEmpty(x)))
{
Fun( uploadDataList, "DESTINATION");
}
var ETADATEList = uploadDataList.Select(o => o.ETADATE.FieldText).Distinct();
if (ETADATEList.Count() > 1)
{
Fun( uploadDataList, "ETADATE");
}
if (ETADATEList.Any(x => string.IsNullOrEmpty(x)))
{
Fun( uploadDataList, "ETADATE");
}
return uploadDataList;
}