有不明白的地方欢迎入群 347636249 探讨
类似HashSet<T> 类的实现
public class UniqueList<T> : List<T>
{
public new void Add(T obj)
{
if(!Contains(obj))
{
base.Add(obj);
}
}
}
using System;
using System.IO;
using System.Collections.Generic;
using System.Runtime.Serialization.Formatters.Binary;
namespace JYLib
{
/// <summary>
/// 序列化List<T>对象,并存储为本地文件(xxxxxx.bin)
/// </summary>
public class ListSerialization<T> where T : class
{
/// <summary>
/// 本地文件绝对路径
/// </summary>
private string SerFilePath;
public ListSerialization (){}
public ListSerialization (string filepath)
{
this.SerFilePath = filepath;
}
public void Save(List<T> list)
{
using (Stream s = File.Open (SerFilePath, FileMode.Create)) {
BinaryFormatter bf = new BinaryFormatter ();
bf.Serialize (s, list);
}
}
public List<T> Read()
{
List<T> list = new List<T> ();
if (File.Exists (SerFilePath)) {
using (Stream s = File.Open (SerFilePath, FileMode.Open)) {
BinaryFormatter bf = new BinaryFormatter ();
list = (List<T>)bf.Deserialize (s);
}
}
return list;
}
//...
}
}
ps:T对象需要用[
Serializable]标记