是否可以 save/store 文件中数组中的对象?

Is it possible to save/store objects which are in an array in a file?

所以我有这个学校任务,我应该编写一个控制台代码,我可以在其中创建各种产品,只需输入它们即可。

我已经设法使用对象数组来更轻松地处理产品的创建、编辑和删除。

我想知道是否可以以任何形式存储这个对象数组。 当他们是一个很好的方法时,你能给我解释一下吗?

所以在一些帮助下,我现在想出了如何存储它:D。非常感谢! 但现在我的问题是:除了属性“private double menge”没有得到存储外,一切正常。

我的Class:

[Serializable]
class Artikel
    {
        public string artikelnummer;
        public string artikelbezeichnung;
        private double Menge;
        public string Mengeneinheit;
        public double Preis;

        public void MengeAktualisieren(double abZuBuchung)
        {
            if (abZuBuchung < -1000 || abZuBuchung > 1000)
            {
                Console.WriteLine("Eingabe darf den Wert 1000 nicht ueberschreiten und den Wert -1000 nicht unterschreiten!\n");
            }
            else
            {
                Menge += abZuBuchung;
                Console.WriteLine("\n\nMenge wurde zu: " + MengeAnzeigen() + " geändert!\n");
            }
        }

        public string MengeAnzeigen()
        {
            return (Menge.ToString());
        }

        
        [JsonConstructor]
        public Artikel(string anlegen_artikelnummer, string anlegen_artikelbezeichnung, double anlegen_Menge, string anlegen_Mengeneinheit, double anlegen_Preis)
        {
            artikelnummer = anlegen_artikelnummer;
            artikelbezeichnung = anlegen_artikelbezeichnung;
            Menge = anlegen_Menge;
            Mengeneinheit = anlegen_Mengeneinheit;
            Preis = anlegen_Preis;
        }

    }

是的。您可以通过多种方式做到这一点,但最流行的方式是序列化该数组并将其写入文件,当您需要从文件中检索该数组时,而不是读取该特定文件并反序列化文件内容并将其转换内容到数组。最流行的方法之一是使用“Newtonsoft.Json”库。这是我给出的代码 below.Please 尝试一下,让我知道它是否有效。

private void ArrayToJSONString(MyClass[] items,string outpath)
{  
       string jsonData = JsonConvert.SerializeObject(items);
       var myFile = File.Create(outpath);
       myFile.Close();
       File.WriteAllText(@"" + outpath, jsonData);           
}
  private void JSONStringToArray(string filepath)
  {
      string jsonData = File.ReadAllText(filepath);             
      MyClass[] items = JsonConvert.DeserializeObject<MyClass[]>(jsondata);           
  }

注意:JsonConvert Class 在 Newtonsoft.Json 库中。它是免费的,可用于 .NET 和 .NET Core。

在@Linker-SJNF 的帮助下,我弄清楚了如何序列化和反序列化我的对象数组。他们是这个小问题,我的属性:private double menge 不会序列化...

对此的答案是将 [JsonProperty] 放在该属性声明的上方。 现在一切正常!

非常感谢@Linker-SJNF 和@dr.null 的帮助! 祝你好运!