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]}等。。