0
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; }
}
4

1 に答える 1

1

新しいインスタンスを作成する代わりに、次を使用してリストからインスタンスを取得してみてください。FirrstOrDefaultそれが見つかった場合は、そのインスタンスをリストから削除します。現在、新しいオブジェクトを作成しており、それをリストから削除しようとしています。

var itemToBeRemoved = objSessionResponseList
                    .FirstOrDefault(x=> 
                    x.QId == Convert.ToInt32(Session["QuestionNumber"]) &&
                    x.QAnswer == Session["CurrentAnswer"].ToString();

if(itemToBeRemoved != null) //means item is found in the list
    objSessionResponseList.Remove(itemToBeRemoved)
于 2013-07-17T13:54:29.877 に答える