Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否可以将数组中的对象保存/存储到文件中?_C#_Arrays_Object_Save_Store - Fatal编程技术网

C# 是否可以将数组中的对象保存/存储到文件中?

C# 是否可以将数组中的对象保存/存储到文件中?,c#,arrays,object,save,store,C#,Arrays,Object,Save,Store,所以我有一个学校的任务,我可以写一个控制台代码,在其中我可以创建各种产品,只需输入它们 我已经设法使用一个对象数组,使其更容易处理产品的创建、编辑和删除 我想知道是否可以以任何形式存储此对象数组。 当他们的方法很好的时候,你能给我解释一下吗 所以,在一些帮助下,我现在知道了如何储存它:D。非常感谢! 但现在我的问题是:除了“private double menge”属性没有得到存储之外,一切都正常 我的班级: [Serializable] class Artikel {

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

我已经设法使用一个对象数组,使其更容易处理产品的创建、编辑和删除

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

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

我的班级:

[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;
        }

    }
[可序列化]
Artikel类
{
公共弦艺人;
公共字符串Artikelbezeichung;
私人双梦阁;
公共字符串Mengeneinheit;
公共双重优惠;
公共无效Mengeaktualieseren(双abZuBuchung)
{
如果(abZuBuchung<-1000 | | abZuBuchung>1000)
{
Console.WriteLine(“Eingabe darf den Wert 1000 nicht ueberschreiten and den Wert-1000 nicht unterschreiten!\n”);
}
其他的
{
孟格+=阿祖不冲;
Console.WriteLine(“\n\nMenge wurde zu:“+MengeAnzegen()+”geändert!\n”);
}
}
公共字符串mengeAnzegen()
{
return(Menge.ToString());
}
[JsonConstructor]
公共艺术品(字符串编号、字符串编号、双字符编号、字符串编号、双字符编号)
{
ArtikerNummer=anlegen_ArtikerNummer;
Artikelbezeichung=anlegen_Artikelbezeichung;
孟格=安乐根_孟格;
Mengeninheit=anlegen_Mengeninheit;
Preis=anlegen_Preis;
}
}

是。您可以通过多种方式来实现这一点,但最流行的方式是序列化该数组并将其写入文件,然后在需要从文件中检索该数组时,读取该文件并反序列化该文件内容并将该内容转换为数组。最流行的方法之一是使用“Newtonsoft.Json”库。下面是我的代码。请尝试一下,让我知道它是否有效

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);           
  }
private void ArrayToJSONString(MyClass[]项,字符串输出路径)
{  
字符串jsonData=JsonConvert.SerializeObject(项);
var myFile=File.Create(输出路径);
myFile.Close();
writealText(@“+outpath,jsonData);
}
私有void JSONStringToArray(字符串文件路径)
{
字符串jsonData=File.ReadAllText(文件路径);
MyClass[]items=JsonConvert.DeserializeObject(jsondata);
}

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

是。您可以通过多种方式来实现这一点,但最流行的方式是序列化该数组并将其写入文件,然后在需要从文件中检索该数组时,读取该文件并反序列化该文件内容并将该内容转换为数组。最流行的方法之一是使用“Newtonsoft.Json”库。下面是我的代码。请尝试一下,让我知道它是否有效

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);           
  }
private void ArrayToJSONString(MyClass[]项,字符串输出路径)
{  
字符串jsonData=JsonConvert.SerializeObject(项);
var myFile=File.Create(输出路径);
myFile.Close();
writealText(@“+outpath,jsonData);
}
私有void JSONStringToArray(字符串文件路径)
{
字符串jsonData=File.ReadAllText(文件路径);
MyClass[]items=JsonConvert.DeserializeObject(jsondata);
}

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

在@Linker SJNF的帮助下,我找到了如何序列化和反序列化我的对象数组。他们的问题是我的属性:
private double menge
无法序列化

答案是将
[JsonProperty]
放在该属性声明的上方。 现在一切都很好

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

在@Linker SJNF的帮助下,我想出了如何序列化和反序列化我的对象数组。他们的问题是我的属性:
private double menge
无法序列化

答案是将
[JsonProperty]
放在该属性声明的上方。 现在一切都很好

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

它起作用了!它们是一些小东西。但这与您的代码无关:D。经过一些测试,我发现我的类的一个属性double没有存储在json中。另一个是双倍的,也是双倍的。你知道为什么它会跳过第一个双属性吗?我不知道为什么会发生这种情况,但是你能提供给我你要检查的类的定义吗?当然。我编辑我原来的帖子!好的,你可以这样做:)它工作!它们是一些小东西。但这与您的代码无关:D。经过一些测试,我发现我的类的一个属性double没有存储在json中。另一个是双倍的,也是双倍的。你知道为什么它会跳过第一个双属性吗?我不知道为什么会发生这种情况,但是你能提供给我你要检查的类的定义吗?当然。我编辑我原来的帖子!好的,你可以这样做:)