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)
您必须从列表中获取要删除的对象的索引,然后您可以:
//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)
您可以通过项目的已知位置或项目中的内容来删除该项目。
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)