gpt4 book ai didi

c# - 检查 session 中是否已存在数组

转载 作者:太空宇宙 更新时间:2023-11-03 16:14:02 24 4
gpt4 key购买 nike

在 Visual C# 中,如何检测 Session 中是否已存在数组?该网站有一个文本框,你可以写一个名字。当您单击“单击”按钮时,它会在标签中添加名称。假设我添加了相同的名称,它应该在标签中显示一条消息,如“名称已存在!”。我应该怎么办?我读到了“包含”方法,但对我来说效果不佳。我犯了什么错误?

下面的代码是:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}

protected void btnClick_Click(object sender, EventArgs e)
{
if (Session["listOfCharacters"] == null)
{
Session.Add("listOfCharacters", new List<Character>());
}

List<Character> listOfCharacters = (List<Character>)Session["listOfCharacters"];

listOfCharacters.Add(new Character() { name = txtName.Text});

lblShow.Text = "";

foreach (Character item in listOfCharacters)
{
lblShow.Text += "Name: " + item.name + "<br />";

//if (listOfCharacters.Contains(Session["listOfCharacters"]))
//{
// lblShow.Text = "Exists";
//}
}
}
}

相信我,我花了几个小时甚至几天的时间,但还没有找到解决方案。

最佳答案

您可以编写 LINQ 查询来检查该项目是否存在于列表中

例如

private string _listofcharacters = "listOfCharacters";
protected void Button1_Click(object sender, EventArgs e)
{
if (Session[_listofcharacters] == null)
{
Session.Add(_listofcharacters, new List<Character>());
}

List<Character> listOfCharacters = (List<Character>)Session[_listofcharacters];

lblShow.Text = "";

var check = from p in listOfCharacters
where p.Name.ToLower().Contains(txtName.Text.ToLower())
select p;

if (check.Count() == 0)
{
listOfCharacters.Add(new Character() { Name = txtName.Text });

foreach (Character item in listOfCharacters)
{
lblShow.Text += "Name: " + item.Name + "<br />";
}
}
else
{
lblShow.Text = "Name already exists!";
}
}

关于c# - 检查 session 中是否已存在数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16383945/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com