复杂的话,建议还是使用xml序列化。简单的话,给一个例子 比如T是User class User { public int ID { get; set; } public string Name { get; set; } }写入 System.IO.File.WriteAllLines(@"c:\1.txt", list.Select(x => string.Format("{0},{1}", x.ID, x.Name))); 读取 var list = System.IO.File.ReadAllLines(@"c:\1.txt").Select(x => new User() { ID = int.Parse(x.Split(',')[0]), Name = x.Split(',')[1] });
如果是xml怎么储存和读取?
自己Google C# XML序列化
如果想XML格式存储,请使用DataContractSerializer类来写入到文件。 如果想Json格式存储,请使用DataContractJsonSerializer来写入到文件。下面给出Json格式存储示例,假定要存储的对象类型为Schema:SaveFileDialog sf = new SaveFileDialog() { Filter = "文本文件(*.txt)|*.txt", AddExtension = true }; if (sf.ShowDialog() == true) { try { DataContractJsonSerializer js = new DataContractJsonSerializer(typeof(Schema)); var ss = sf.OpenFile(); js.WriteObject(ss, data); ss.Close(); MessageBox.Show("保存成功"); } catch { MessageBox.Show("保存失败"); } } OpenFileDialog of = new OpenFileDialog() { Filter = "文本文件(*.txt)|*.txt", AddExtension = true }; if (of.ShowDialog() == true) { try { DataContractJsonSerializer js = new DataContractJsonSerializer(typeof(Schema)); var ss = of.OpenFile(); data = js.ReadObject(ss) as Schema; ss.Close(); gridControl2.ItemsSource = null; gridControl1.ItemsSource = data.Tables; MessageBox.Show("加载成功"); } catch { MessageBox.Show("加载失败"); } }
比如存入文本文件中:
List<string> valueList = ......;
File.WriteAllLines(@"c:\data.txt", valueList.ToArray());
读出:
List<string> valueList = File.ReadAllLines(@"c:\data.txt").ToList();
比如T是User
class User
{
public int ID { get; set; }
public string Name { get; set; }
}写入
System.IO.File.WriteAllLines(@"c:\1.txt", list.Select(x => string.Format("{0},{1}", x.ID, x.Name)));
读取
var list = System.IO.File.ReadAllLines(@"c:\1.txt").Select(x => new User() { ID = int.Parse(x.Split(',')[0]), Name = x.Split(',')[1] });
如果是xml怎么储存和读取?
如果想Json格式存储,请使用DataContractJsonSerializer来写入到文件。下面给出Json格式存储示例,假定要存储的对象类型为Schema:SaveFileDialog sf = new SaveFileDialog() { Filter = "文本文件(*.txt)|*.txt", AddExtension = true };
if (sf.ShowDialog() == true)
{
try
{
DataContractJsonSerializer js = new DataContractJsonSerializer(typeof(Schema));
var ss = sf.OpenFile();
js.WriteObject(ss, data);
ss.Close();
MessageBox.Show("保存成功");
}
catch
{
MessageBox.Show("保存失败");
}
}
OpenFileDialog of = new OpenFileDialog() { Filter = "文本文件(*.txt)|*.txt", AddExtension = true };
if (of.ShowDialog() == true)
{
try
{
DataContractJsonSerializer js = new DataContractJsonSerializer(typeof(Schema));
var ss = of.OpenFile();
data = js.ReadObject(ss) as Schema;
ss.Close();
gridControl2.ItemsSource = null;
gridControl1.ItemsSource = data.Tables;
MessageBox.Show("加载成功");
}
catch
{
MessageBox.Show("加载失败");
}
}
没有任何类型是List<T>。你必须把T具体替换为实际的类型,那么List<T>才是一个具体的类型。如果你说某对象的类型是List<T>那么你还没有理解泛型的概念。