将字符串转换为结构的快速方法
本文关键字:方法 结构 字符串 转换 | 更新日期: 2023-09-27 18:29:57
嗨,我有一个类似的结构
typedef struct
{
string firstname;
string lastname;
} person;
作为输入,我取一个字符串列表List<string>
,就像这个
"firstname-lastname"
从输入字符串转换为结构体person的最快方法是什么?可以通过使用LINQ来完成吗?
字符串可能不包含"-"。在这种情况下,字符串将保存在person.firstname中,而person.lastname为空。
希望我是清白的。
非常感谢
我假设您来自C++,因为命名和语法是C++而不是C#。在C#中,使用类是很自然的(您也可以使用C#结构-只需将class关键字更改为struct):
class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
有了这个类,你可以使用linq创建一个列表:
var people = (
from s in myList
let split = s.Split('-')
select new Person
{
FirstName = split.First(),
LastName = split.Skip(1).FirstOrDefault() ?? ""
}).ToList();
let
表达式对字符串进行一次拆分,然后重用拆分的结果。
var foos = list.Select(x => new PersonStruct() {
firstname = x.Split("-")[0],
lastname = x.Split("-")[1],
}).ToList();