[英]is it possible to store structure in Text file using c#
我喜歡將結構存儲到文本文件中,也檢索相同的文件。
我創建了一個結構名稱,學生詳細信息包括值
studentid,學生姓名,學生avg.i我希望將這種結構詳細信息存儲在Textfile中,以供許多學生使用。之后,我想使用學生ID從Textfile中獲取詳細信息。我正在Windows應用程序中工作。是否可以在c#中使用。
您可以將結構集合存儲在XML文件中,該文件是結構化文本。
這是一個快速入門的示例:
using System.Collections.Generic;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
public class Student {
[XmlElement("id")]
public int id;
[XmlElement("name")]
public string name;
}
[XmlRoot("students")]
public class Students {
[XmlElement("students")]
public List<Student> students = new List<Student>();
}
class Program {
static void Main(string[] args) {
Students s = new Students();
s.students.Add(new Student() { id = 1, name = "John Doe" });
s.students.Add(new Student() { id = 2, name = "Jane Doe" });
XmlSerializer xs = new XmlSerializer(typeof(Students));
using (FileStream fs = new FileStream("students.xml", FileMode.Create, FileAccess.Write)) {
xs.Serialize(fs, s);
}
}
}
您將得到類似:
<?xml version="1.0"?>
<students xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<students>
<id>1</id>
<name>John Doe</name>
</students>
<students>
<id>2</id>
<name>Jane Doe</name>
</students>
</students>
您也可以看看XmlSerializer :
在XML文檔中對對象進行序列化和反序列化。 XmlSerializer使您可以控制如何將對象編碼為XML。
嗯,有XML
您可以使用xml文件; xml本質上是結構化的文本,這似乎正是您想要的。 從System.Xml命名空間開始。
像Paolo(和其他)一樣,我將創建一個特定的類和一個如下的容器類:
[DataContract]
public class Student
{
[DataMember]
public int ID { get; set; }
[DataMember]
public string FirstName { get; set; }
[DataMember]
public string LastName { get; set; }
}
[DataContract]
public class StudentList
{
[DataMember]
public string Name { get; private set; }
[DataMember]
public List<Student> Students { get; private set; }
public StudentList(string name)
{
Name = name;
Students = new List<Student>();
}
}
然后可以通過DataContractSerializer對它們進行反序列化。 以上課程只是一個粗略的起點。 根據您的需求,您必須考慮私有設置者,不變性等。
但是,如果您有這樣的特定類,則可以輕松地創建BindingSource ,將StudentList.Students
放入其中,然后將此BindingSource放入DataGridView中以可視化並更改列表。
您只需要將對象序列化為File即可 。 檢查文章。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.