在两种不同的情况下查询到同一张表中的数据,现要判断两种数据是否一样,再进行操作,如何做?
两个数据,要是都是同一种类型还好做,关键一个是List集合( IList<ErsHoroscope> dailyList),一个是Model类(ErsHoroscope daily),不好比。还有个问题就是:数据表中的字段太多了,要是短一点还好,
foreach (var item in dailyList)
{
if(item.questions_date == daily.questions_date && 。。。。。。)
{}
}
可以这样一条条的比对,但是这个表有50多个字段。。。。。我if里还不写到天边去啊。
各位大侠有什么简单的方法教下在下的?感激不尽啊!!!
没有id的话,你要 比较某些字段相同就对象相同的话,就你这样写吧。
var query=dailyList.FirstOrDefault(f=>f.Id==daily.Id); if(query!=null)Console.WriteLine("相同"); //部分字段 var query1=dailyList.FirstOrDefault(f=>f.questions_date==daily.questions_date&&......); //所有字段 if(dailyList.Contains(daily)) {}
一般比较数据库的记录,是比较id的,如果是类型要比较的话,最好实现icomparable接口,其中接口方法的实现可以参考如下:
通过反射,反射出类型的字段,字段类型和值来比较,一个循环加一些判断
为了方便,还是实现一个比较的接口吧
但比较2条的id相等能实现你的需求吗?
建议楼主去看看反射,然后写个比较的方法。。。