从文件中删除当前字符串数组
本文关键字:字符串 数组 删除 文件 | 更新日期: 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()
函数。然后重新组合不包含该项的数组,并写入磁盘。