如何在编写器中保存枚举项?

时间:2014-03-01 05:18:25

标签: c# enums streamwriter

我有enum list(?),我想将其保存在StreamWriter,但我不知道如何保存它,我的意思是:

TextWriter gPieza = new StreamWriter("Pieza.txt", true);
gPieza.WriteLine();
gPieza.Close();

我不知道如何把它放在WriteLine中。我试图放Class.EnumName.ToString();,但它不会让我,de EnumName之后出现的是Enum所具有的不同之处。

这些是我的enum lists

    public enum Types
    {
        Vacio,
        Peon,
        Torre,
        Caballo,
        Alfil,
        Reina,
        Rey
    }

    public enum Colors
    {
        White,
        Black
    }

这些是国际象棋比赛的一部分,我需要保存用户放在棋盘上的棋子以及棋子摆放的位置。

    Types _type;
    Colors _color;
    Point _coord;

2 个答案:

答案 0 :(得分:1)

只写enum,

var myEnums = new List<MyEnum>
                  {
                      MyEnum.Value1,
                      MyEnum.Value2,
                      MyEnum.Value1, 
                      MyEnum.Value1,
                      MyEnum.Value2,
                      MyEnum.Value1, 
                      MyEnum.Value1,
                      MyEnum.Value2,
                      MyEnum.Value1
                  };

var streamWriter = new StreamWriter("test.txt");

foreach (var myEnum in myEnums)
{
    streamWriter.WriteLine(myEnum);
}

streamWriter.Close();

如果要写实际值

streamWriter.WriteLine((int)myEnum);

<强>更新 对于编写多种类型的枚举,您可以编写一些方法,如

public static void WriteEnums<T>(List<T> enums)
{
    var streamWriter = new StreamWriter("test.txt");

    foreach (var myEnum in enums)
    {
        streamWriter.WriteLine(myEnum);
    }

    streamWriter.Close();
}

并称之为,

var types = new List<Types>
                  {
                      Types.Alfil,
                      Types.Peon,
                      Types.Vacio
                  };

var colorses = new List<Colors>
                   {
                       Colors.Black, Colors.Black, Colors.White
                   };


WriteEnums(colorses);
WriteEnums(types);

答案 1 :(得分:0)

foreach( var enumValue in Enum.GetValues(typeof(MyEnum))) 
{ 
     Console.WriteLine(enumValue); // or enumValue.ToString()
}