从列表框中删除重复项(字符串)
本文关键字:字符串 列表 删除 | 更新日期: 2023-09-27 18:36:05
我是一名大学生,正在为一个单位做一个项目。我们正在创建一个 Web 应用程序仪表板,我似乎无法从列表框 (customerNameListBox) 中删除重复项。
public partial class Graphs : System.Web.UI.MasterPage
{
string FullDataCSV = Path.Combine(HttpContext.Current.Server.MapPath
("~/App_Data/Full_Data.csv"));
List<CSVEntry> CSVList = new List<CSVEntry>();
public void ReadFile()
{
try
{
StreamReader inputFile;
string line;
CSVEntry entry = new CSVEntry();
char[] delim = { ',' };
inputFile = File.OpenText(FullDataCSV);
while (!inputFile.EndOfStream)
{
line = inputFile.ReadLine();
string[] tokens = line.Split(delim);
entry.Value0 = tokens[0];
entry.customerName = tokens[22];
entry.Value29 = tokens[29];
CSVList.Add(entry);
}
}
catch
{
Response.Redirect("Error.aspx");
}
}
private void DisplayCustomerName()
{
foreach (CSVEntry entry in CSVList)
{
customerNameListBox.Items.Add(entry.customerName);
}
}
private void SortCustomerName()
{
CSVList = CSVList.OrderBy(x => x.customerName).ToList();
}
protected void Page_Load(object sender, EventArgs e)
{
ReadFile();
SortCustomerName();
DisplayCustomerName();
}
protected void historyButton_Click(object sender, EventArgs e)
{
Response.Redirect("History.aspx");
}
protected void exportButton_Click(object sender, EventArgs e)
{
Response.Redirect("Export.aspx");
}
protected void printButton_Click(object sender, EventArgs e)
{
Response.Redirect("Print.aspx");
}
}
我尝试使用以下代码删除客户名称文本框中的重复项目,但它根本不起作用。
protected void goButton_Click(object sender, EventArgs e)
{
List<string> removals = new List<string>();
foreach (string s in customerNameListBox.Items)
{
removals.Add(s);
}
foreach (string s in removals)
{
customerNameListBox.Items.Remove(s);
}
在下拉列表中
添加项目之前,更新代码并检查重复项。
private void DisplayCustomerName()
{
foreach (CSVEntry entry in CSVList)
{
ListItem item = new ListItem(entry.customerName);
if (!customerNameListBox.Items.Contains(item) )
{
customerNameListBox.Items.Add(item);
}
}
}
现在,您不需要从下拉列表中删除重复值。
或者,甚至可以使用 linq 在集合中选择不同的值。
我认为这对您有所帮助。
if (ListBox.SelectedItem != null)
{
ListBox.Items.RemoveAt(ListBox.SelectedIndex);
}`
它可以帮助你
List<string> removals = new List<string>();
foreach (string str in ListBox1.Items)
{
removals.Add(str);
}
foreach (string str in removals)
{
ListBox1.Items.Remove(str);
}
我认为它也可以帮助你...
foreach (DataRow row in dtTemp.Rows)
{
ListItem lstim = new ListItem();
lstim.Text = row["ExamleColumnName1"].ToString();
if (lstSelectedWorkout.Items.Contains(lstim) == true)
{
// Response.Write("<script>alert('" + lstMajorMuscles.SelectedItem.Text + " already exist in the list')</script>");
}
else
{
lstSelectedWorkout.Items.Add(row["ExamleColumnName1"].ToString());
}
}