从矢量将字符串转换为其他类型(自定义)

时间:2014-02-25 06:32:36

标签: c# string vector streamreader

我正在尝试使用StreamReader从.txt中读取变量。它告诉我不能将字符串转换为ushort。我还需要为自定义类做这件事。

ushort noPhoto;
noPhoto= vectChamps[3].Trim();

PositionHockey lol;
lol = vectChamps[4].Trim();

2 个答案:

答案 0 :(得分:1)

使用ushort.Parse()使其正常工作:

ushort noPhoto;
noPhoto = ushort.Parse(vectChamps[3].Trim());

但要PositionHockey,您必须声明一种将string转换为PositionHockey实例的方法。作为PositionHockey类中的静态方法(如Parse)或conversion operator

<强>更新

对于enum,您可以使用以下内容:

PositionHockey lol;
lol = (PositionHockey)int.Parse(vectChamps[4].Trim());

如果您的字符串包含字符串的数值。如果是字符串表示,请使用Enum.Parse

PositionHockey lol;
lol = (PositionHockey)Enum.Parse(typeof(PositionHockey),vectChamps[4].Trim());

答案 1 :(得分:0)

您需要将字符串解析为ushort,如下所示:

ushort number = UInt16.Parse(vectChamps[3].Trim());

此处提供更多信息:http://msdn.microsoft.com/en-us/library/c9373sf3(v=vs.110).aspx

对于另一种类型,您可以在对象构造函数中添加一个字符串,例如

PositionHockey lol = new PositionHockey(vectChamps[4].Trim());

或直接设置specfic字段:

lol.Value = vectChamps[4].Trim();

我现在看到PostionHockey是一个Enum,你可以做这样的事情

PostionHockey lol= (PostionHockey) Enum.Parse(typeof(PostionHockey ), vectChamps[4].Trim());

来源:http://msdn.microsoft.com/en-us/library/system.enum.parse(v=vs.110).aspx