例如 List<OrderDetailResult> oldList = new List<OrderDetailResult>();
OrderDetailResult result1 = new OrderDetailResult();
result1.SKU = "EXP001";
result1.Quantity = 5;
result1.SalesPrice = 3;
OrderDetailResult result2 = new OrderDetailResult();
result2.SKU = "EXP002";
result2.Quantity = 10;
result2.SalesPrice = 2;
oldList.Add(result1);
oldList.Add(result2); List<OrderDetailResult> newList = new List<OrderDetailResult>();
OrderDetailResult result3 = new OrderDetailResult();
result3.SKU = "EXP001";
result3.Quantity = 5;
result2.SalesPrice = 3;
OrderDetailResult result4 = new OrderDetailResult();
result4.SKU = "EXP002";
result4.Quantity = 5;
result4.SalesPrice = 4;
newList.Add(result3);
newList.Add(result4);
上面有二个集合,我要判断这二个里面 每个对象的其中二个属性 SKU,及Quantity 还有一个单价属性不需要判断
,我用最笨的方法循环第一个list 查出 list[0] 里面的SKU,及 Quantity去新的进行对比,看看是否不一致则表示修改过,
但这种方法很笨,有没有直接比较对象的方法,然后我给要比较的对象的属性赋需要比较的值。
请高手指教
OrderDetailResult result1 = new OrderDetailResult();
result1.SKU = "EXP001";
result1.Quantity = 5;
result1.SalesPrice = 3;
OrderDetailResult result2 = new OrderDetailResult();
result2.SKU = "EXP002";
result2.Quantity = 10;
result2.SalesPrice = 2;
oldList.Add(result1);
oldList.Add(result2); List<OrderDetailResult> newList = new List<OrderDetailResult>();
OrderDetailResult result3 = new OrderDetailResult();
result3.SKU = "EXP001";
result3.Quantity = 5;
result2.SalesPrice = 3;
OrderDetailResult result4 = new OrderDetailResult();
result4.SKU = "EXP002";
result4.Quantity = 5;
result4.SalesPrice = 4;
newList.Add(result3);
newList.Add(result4);
上面有二个集合,我要判断这二个里面 每个对象的其中二个属性 SKU,及Quantity 还有一个单价属性不需要判断
,我用最笨的方法循环第一个list 查出 list[0] 里面的SKU,及 Quantity去新的进行对比,看看是否不一致则表示修改过,
但这种方法很笨,有没有直接比较对象的方法,然后我给要比较的对象的属性赋需要比较的值。
请高手指教
解决方案 »
- C#.net的学习方法有那些?
- 是否可以获取一个process中启动的应用窗口的对象
- js的问题~菜鸟求救
- 高手进!!!事件委托多个函数,如果知道事件委托了多少个函数?
- 请教个问题!
- 有关listview等的小问题
- 如何在c#中动态创建oracle实例(oracle数据库),并进行创建用户,赋权等操作..以此实现多帐套...请各位大小帮忙啊..
- winform中RDLC报表调用存储过程,参数怎么传过去?
- 匹配datetime查询的问题
- 大家帮我拿个主意,上海,.net & c#编程4k 的月薪,该不该去?!
- 你能给我修改下,我需要只显示“名字或平均成绩”,名字不需要重复,求助····
- listview 中的项在被选中后的显示如何控制?
而这个IEqualityComparer
class BoxEqualityComparer : IEqualityComparer<Box>
{ public bool Equals(Box b1, Box b2)
{
if (b1.Height == b2.Height & b1.Length == b2.Length
& b1.Width == b2.Width)
{
return true;
}
else
{
return false;
}
}
public int GetHashCode(Box bx)
{
int hCode = bx.Height ^ bx.Length ^ bx.Width;
return hCode.GetHashCode();
}}
回楼上的我的意思你已经明白了,但是有个问题
int hCode = bx.Height ^ bx.Length ^ bx.Width;
这一句的时候,因为后面三个属性类型是不确定的有的是int ,而有的是string 所以应该如何写呢?
{
object o = obj.Quantity;
o = obj.SKU;
return o.GetHashCode();
}
但是目前这个只实现了对象比较,我现在是比较集合里面的对象,难道一定要循环调用上面的方法吗