【发布时间】:2013-07-17 13:48:04
【问题描述】:
SessionResponseList objClientSessionResponseList = new SessionResponseList();
objClientSessionResponseList.QId = Convert.ToInt32(Session["QuestionNumber"]);
objClientSessionResponseList.QAnswer = Session["CurrentAnswer"].ToString();
objSessionResponseList = (List<SessionResponseList>)Session["Answers"];
if (objSessionResponseList.Where(x=>x.QId == objClientSessionResponseList.QId && x.QAnswer==objClientSessionResponseList.QAnswer).Count()>0)
{
objSessionResponseList.Remove(objClientSessionResponseList);
Session["Answers"] = objSessionResponseList;
}
// objSessionResponseList.Remove(objClientSessionResponseList);
//This isn't working tried everything the values are exact duplicate
请帮忙。
public class SessionResponseList{
public int QId { get; set; }
public string QAnswer { get; set; }
}
【问题讨论】:
-
尝试在
SessionResponseList类中重载Equals和GetHashCode。有关信息,请参阅本文:infoq.com/articles/Equality-Overloading-DotNET -
只需尝试使用 Enumerable.SequenceEqual(list1,list2) 来检查您的两个通用列表实际上是否相同。见stackoverflow.com/questions/2270754/…