加入一维数组以覆盖具有多条记录的 CSV 文件

Join one-dimesional array to write over a CSV file with multiple records

我正处于保存功能的最后一步,我需要帮助弄清楚如何将数据结构化回我的 CSV 格式,以便我可以覆盖原始数据。这是 link 对我的其他 code/post 帮助我达到这一点: 我已经分离了记录并更改了正确的值,但现在我需要将记录重新加入相同的位置格式为 CSV 文件,然后覆盖原始 CSV。

这是我的代码:

string txt = System.IO.File.ReadAllText("Assets/Resources/characters.csv.txt");
        
string[] data = txt.Split(new char[] { '\n' });
        
foreach(string record in data){
    var dataValues = record.Split(',');
            
    if(dataValues.Length >= 6 && dataValues[1] == trickName)
    {
        dataValues[3] = currentXP.ToString();
        dataValues[4] = currentLevel.ToString();
        dataValues[5] = maximumXP.ToString();
    } 
            
    foreach(string row in dataValues)
    {
        //prints out a one-dimesional array, single lines no commas
        Debug.Log(row);
    }           
}

使用 string.Join() 将分离的和更新的值连接回一行。

// string txt = System.IO.File.ReadAllText("Assets/Resources/characters.csv.txt");        
// string[] data = txt.Split(new char[] { '\n' });

// use ReadAllLines function instead of ReadAllText
string[] data = File.ReadAllLines("Assets/Resources/characters.csv.txt");
foreach(string record in data)
{
    var dataValues = record.Split(',');            
    if(dataValues.Length >= 6 && dataValues[1] == trickName)
    {
        dataValues[3] = currentXP.ToString();
        dataValues[4] = currentLevel.ToString();
        dataValues[5] = maximumXP.ToString();
    }             
    // concatenate values into comma delimited line
    string outputLine = string.Join(",", dataValues);
    Debug.Log(outputLine);             
}