从文件中删除当前字符串数组

本文关键字:字符串 数组 删除 文件 | 更新日期: 2023-09-27 18:07:26

只是一个简单的新手问题。我想删除"接受"按钮中显示的字符串。一旦"接受"按钮被单击,显示的数组被写入另一个文件,但是我需要显示一行数组从这个文件中删除。谢谢你的宝贵时间。感谢! !

下面是我的代码:
    StreamReader srAc = new StreamReader(Server.MapPath("~") + "''App_Data''UserEntryNew.txt");
    string allAccept = srAc.ReadToEnd();
    string[] allAcceptArray = allAccept.Split(''n');
    string accepted = "";
    for (int i = 0; i < allAcceptArray.Length; i++)
    {
        if (allAcceptArray[i] == modTextBox.Text)
        {
                accepted = allAcceptArray[i];
        }
    }

从文件中删除当前字符串数组

您可以使用linq从数组中删除条目。假设您有一个数组allAcceptArray,您想从数组中删除modTextBox.Text:

 allAcceptArray = allAcceptArray.Where(x => x != modTextBox.Text).ToArray();

如果您对Linq不熟悉,可以使用数组方法。

// Read the data
string[] allAcceptArray = rdr.ReadToEnd().Split(''n');
//identify item index - 'r might be required
int idx = Array.IndexOf(allAcceptArray, modTextBox.Text);
// Create output string without item
string rtn = string.Join("'n", allAcceptArray, 0, idx);
rtn += string.Join("'n", allAcceptArray, idx+1, allAcceptArray.Length - idx-1);
// Write to file
using (StreamWriter swOut =
    new StreamWriter(Server.MapPath("~") + "''App_Data''UserEntryNew-1.txt")))
{
    swOut.Write(rtn);
}

它的工作原理类似于您当前的代码,但不是通过for循环识别项目,我们使用Array.IndexOf()函数。然后重新组合不包含该项的数组,并写入磁盘。