C# 在添加新行之前,检查文件是否包含密钥的最佳方法是什么?

C# 在添加新行之前,检查文件是否包含密钥的最佳方法是什么?,c#,csv,streamreader,streamwriter,C#,Csv,Streamreader,Streamwriter,我有一个包含以下列的CSV文件- 键、值 首先,线路 第二,线路 第三,线路 我想向该文件添加一个新的键值,因为使用C#的文件中尚未存在该键值?最好的方法是什么?我需要一行一行地遍历并检查钥匙,还是有其他更好的方法 我没有使用CSVHelper软件包或任何其他CSV编写器。您可以这样做: string path = @"PathToFile.csv"; string Content = string.Empty; using (StreamReader reader = new StreamR

我有一个包含以下列的CSV文件-

键、值

首先,线路

第二,线路

第三,线路


我想向该文件添加一个新的键值,因为使用C#的文件中尚未存在该键值?最好的方法是什么?我需要一行一行地遍历并检查钥匙,还是有其他更好的方法

我没有使用CSVHelper软件包或任何其他CSV编写器。

您可以这样做:

string path = @"PathToFile.csv";
string Content = string.Empty;

using (StreamReader reader = new StreamReader(path))
{
    Content = reader.ReadToEnd();
    reader.Close();
}

if (!Content.Contains("YourKey"))
{
    using (StreamWriter sw = new StreamWriter(path))
    {
        sw.WriteLine(Content + "\nYourkey,YourValue");
        sw.Close();
    }
}

读取文件并将所有文本写入字符串变量,如果键存在,则检查变量,如果键不存在,则将内容连同新键一起写回文件。随着文件的增长,搜索整个文件所需的时间将越来越长,但它可以很好地工作几千行。

“我需要逐行遍历并检查密钥吗?”是的。我的文件最终会变大。这不是一个昂贵的过程吗?这个文件有多大?@Steve,现在只有几行。而且它可能不会超过几百行。@这是不可避免的,但只是一次,不是每次查找都要感谢您的解决方案。我认为这是行不通的,因为键present的返回值将为true,即使它在其他列值中以字符串形式存在。我只需要验证键列。