我正在我的winform中读取一个文件并将其保存在list.i中有一个按钮“删除”并点击它一个项目(每个列表项是文件中的一行)从列表中被删除,当我将此列表写回文件,我删除的项目将替换为空行。
我不希望文件中出现这些空白行。任何人都可以告诉我如何删除它们。
我尝试使用list.Remove(item)
从列表中删除该项目。
这是我试过的......
ListView.CheckedListViewItemCollection chkditems = listView1.CheckedItems;
Regex regex1 = new Regex(".*\"(?<vm_name>.*)\".*:.*{.*\"vmx_path\".*:.*r?\"(?<vmx_path>.*)\",.*\"vm_base\".*:.*r?\"(?<vm_base>.*)\".*");
List<string> list_to_items = new List<string>();
foreach (ListViewItem chkitem in chkditems)
{
foreach (string line in list)
{
Match match1 = regex1.Match(line);
if (match1.Success)
{
if (match1.Groups["vm_name"].Value == chkitem.Text)
{
list_to_items.Add(line);
}
}
}
listView1.Items.Remove(chkitem);
}
foreach (string tormv in index)
{
list.Remove(tormv);
}
对于列表的示例数据,您可以认为它包含任何文本。
答案 0 :(得分:1)
应该是评论,但是使用代码,这很难......
我不知道你在做什么,但如果你运行这段代码,你会发现你的问题的假设是不正确的:
var list = new List<string>{"1","2","3"};
Console.WriteLine(string.Join(", ", list)); // 1, 2, 3
list.Remove("2");
Console.WriteLine(string.Join(", ", list)); // 1, 3