如何比较C#中的对象。这是我的代码示例
namespace MyService
{
public static class CurrentVCobj
{
public static string id { get; set; }
public static string Month { get; set; }
public static string Year { get; set; }
}
public static class ResponseVCObj
{
public static string id { get; set; }
public static string Month { get; set; }
public static string Year { get; set; }
}
}
我想为上面的对象(CurrentVCobj和ResponseVCObj)赋值,然后在下面的方法中比较(TRUE或FALSE)它们是否相等
public static void compareMethood(IEnumerable<tets> vc )
{
var myvar = vc;
var mycac = rep.populateDict();
foreach (var item in myvar)
{
ResponseVCObj.id = item.id;
ResponseVCObj.Month = DateRange.Month;
ResponseVCObj.Year = DateRange.Year;
CurrentVCobj.id = currentV.Select(d => d.Value.id).ToString() ;
CurrentVCobj.Month = currentV.Select(d => d.Value.Month).ToString();
CurrentVCobj.Year = currentV.Select(d => d.Value.Year).ToString();
//COMPARE OBJECTS HERE
}
}
答案 0 :(得分:0)
试试这个:
if (ResponseVCObj.Equals(CurrentVCobj))
{
...
}
else
{
...
}
答案 1 :(得分:0)
首先,您是否有使用静态类的原因?您的示例代码对我来说似乎很奇怪。您对LINQ的使用似乎也是不必要的。
如果您想通过简单的引用检查以外的方式比较两个不同的对象,则需要覆盖Equals方法。
可在此处找到相关指南: http://msdn.microsoft.com/en-us/library/ms173147(v=vs.80).aspx
答案 2 :(得分:0)
其他答案是正确的,指出您应该覆盖object.Equals
,并且应该从类及其成员中删除静态修饰符。
此外,你应该考虑
IEnumerable<CurrentVCobj>
和IEnumerable<ResponseVCObj>