C# 如何将字符串行转换为类
我将类对象转换为字符串行 如下例所示C# 如何将字符串行转换为类,c#,linq,C#,Linq,我将类对象转换为字符串行 如下例所示 public class Person { public int ID { get; set; } public string Name { get; set; } public string Surname { get; set; } public string Address { get; set; } public override string ToStr
public class Person
{
public int ID { get; set; }
public string Name { get; set; }
public string Surname { get; set; }
public string Address { get; set; }
public override string ToString()
{
return $"{ID}|{Name}|{Surname}|{Address}";
}
}
Person person = new Person();
person.Name = "test1";
person.Surname = "test2";
person.Address = "test3";
var _String = person.ToString();
Console.WriteLine(_String);
这是输出
0 |测试1 |测试2 |测试3
我想将该行(0 | test1 | test2 | test3)转换为类objet
对dotnet standard 2.0执行此操作的最佳方法是什么?如果检查
\u String.Split(“|”)
返回的内容,您将看到它给出了一个字符串[]
。此字符串数组包含
字符两侧的\u字符串的每个部分,因此:
var person = new Person()
{
ID = 1,
Name = "James",
Surname = "Smith",
Address = "James's Road 123"
};
var _String = person.ToString(); // "1|James|Smith|James's Road 123"
var stringSplit = _String.Split("|"); // ["1", "James", "Smith", "James's Road 123"]
现在,您已经拥有了要创建的人物的全部4个部分,因此现在可以重新创建人物:
var recreatedPerson = new Person()
{
ID = stringSplit[0],
Name = stringSplit[1],
Surname = stringSplit[2],
Address = stringSplit[3]
}
您可能会注意到person中的第一行将失败(ID=stringSplit[0]
),因为stringSplit[0]
是string
,但ID
需要int
。因此,要将字符串
转换为int
,我们需要对其进行解析:
ID = int.Parse(stringSplit[0])
请记住,如果不给原始用户一个ID
,字符串数组也不会有ID,在这种情况下,上述解析将失败。但我会让你想想你该怎么处理
编辑:如您的问题评论中所述,如果这不仅仅是学习C#的一个小练习,而且如果您真的在寻找一种将对象转换为字符串的正确方法,反之亦然,那么您应该考虑使用JSON、XML或类似方法序列化对象。欢迎您这样做。试着提供一个你已经尝试过的例子。从你尝试过的东西中获得信息,你会学到更多,而不是毫无根据地寻求解决方案。谢谢,先生。我认为这是不可能的:Person result=_String.Split(“|”);我是一个初学者,我向您道歉。拆分后,请将第一项分配给id,第二项分配给Name,等等。如果您有选择权,有更好的方法序列化对象,如json或xml。Person person1=new Person(){Name=_String.split('|')[0]}等。。