如何:从List <string>中删除项目

gpu*_*360 6 c# string listview list selecteditem

如何:从列表中删除项目

我有以下代码片段...

companies.Remove(listView_Test.SelectedItem.ToString());
Run Code Online (Sandbox Code Playgroud)

有一个listView包含(假设)3个没有名字的项目,只有一个Content"A","B"和"C".现在,当我选择一个项目时listView,我再次单击一个按钮,该按钮运行包含Remove()/的方法RemoveAt().现在我想删除与所选项目List<string> myList的行相同的行Content.

编辑:Flow Flow OverFlow的解决方案

int index = companies.IndexOf(companyContent);
companies.RemoveAt(index);
Run Code Online (Sandbox Code Playgroud)

Tra*_*ent 9

您必须从列表中获取要删除的对象的索引,然后您可以:

//Assuming companies is a list 
companies.RemoveAt(i);
Run Code Online (Sandbox Code Playgroud)

要获取可以使用的项目的索引:

companies.IndexOf("Item");
Run Code Online (Sandbox Code Playgroud)

或者使用带有条件语句的for循环:

for (int i = 0; i < companies.Count; i++) {
   // if it is List<String>
   if (companies[i].equals("Something")) {
         companies.RemoveAt(i);   
   }
}
Run Code Online (Sandbox Code Playgroud)


Jen*_*nsB 8

您可以通过项目的已知位置或项目中的内容来删除该项目。

public static void Main()
{
    List<Object> items = new List<Object>();
    items.Add("test1");
    items.Add("test2");
    items.Add("test3");

foreach(var a in items)
    Console.WriteLine(a.ToString());
Console.WriteLine("--");

items.RemoveAt(1); // remove object at position 1, in this case "test2"

foreach(var a in items)
    Console.WriteLine(a.ToString());
Console.WriteLine("--");

items.RemoveAll(x => ((string) x) == "test1"); // LAMBDA query to remove by a condition

foreach(var a in items)
    Console.WriteLine(a.ToString());
}
Run Code Online (Sandbox Code Playgroud)

输出

test1
test2
test3
--
test1
test3
--
test3
Run Code Online (Sandbox Code Playgroud)