昨天我几乎问过这个问题,但我将把它作为一个新问题进行改革,并且更加具体。
我有一个类类型列表(例如 ESHClass)
List<ESHClass> eshlist;
ESHClass 由以下元素组成:
public class ESHClass{
public string PolicyNumber;
public string PolicyMod;
public string MultiPolicy;
public string HasSwimmingPool;
};
所以说 eshlist 必须策略(ESHClass)并且值相等:
eshlist[0].PolicyNumber= "7";
eshlist[0].PolicyMod= "00";
eshlist[0].MultiPolicy= "Yes";
eshlist[0].HasSwimmingPool= "No";
eshlist[1].PolicyNumber= "7";
eshlist[1].PolicyMod= "00";
eshlist[1].MultiPolicy= "No";
eshlist[0].HasSwimmingPool= "Yes";
所以我有两个我的 ESHClass 实例,数据已经设置并且它们被存储在eshlist
.
下一部分是我的另一篇文章引起注意的地方。我想比较以下对象:
eshlist[0].PolicyNumber == eshlist[1].PolicyNumber //I know this isn't correct code its
//just to show how I would compare.
eshlist[0].HasSwimmingPool == eshlist[1].HasSwimmingPool
然后,如果我要比较的两个对象不同,我想将它们保存在一个列表中,以便在我使用 MVC 4 制作的网页上打印它们,并且该页面是一个 ListView。
我昨天的帖子是在询问更多关于以最有效的方式执行此操作的信息……今天我开始思考它,我想知道我是否真的能够摆脱为每个元素做这件事……现在这是现在我正在这样做:
public List<ESHList> Compare(List<ESHClass> polList)
{
var l = polList;
if (l[0].PolicyNumber.Equals(l[1].PolicyNumber))
l[0].PolicyNumber = l[1].PolicyNumber = null;
if (l[0].HasSwimmingPool.Equals(l[1].HasSwimmingPool))
l[0].HasSwimmingPool = l[1].HasSwimmingPool= null;
}
所以所有相等的元素都被清空,并且列表中只返回不同的元素。这是我调用比较方法的地方:
索引.cshtml:
{
...
return View((esh.Compare(eshList)).DefaultIfEmpty());
}
因此,现在在展示了更详细的解释之后,您是否认为有一种方法可以摆脱一长串的如果,或者只是一种更好的方法来做我今天正在尝试的事情,但将结果保留在我可以打印在屏幕上的列表中?正如我在另一篇文章中所说,我对 C# 较新,对 Web 编程完全陌生。如果您有任何有用的答案或我可以参考的文章,请告诉我!谢谢!
编辑: 只是用我的例子来展示我的屏幕将显示什么
政策1
PolicyMod是 HasSwimmingPool否
政策2
PolicyMod否 HasSwimmingPool是