我有两种类型的字符串:Mer和Spl
// Example
string testMer = "321|READY|MER";
string testSpl = "321|READY|SPL";
然后我会分开它们:
var splitMer = testMer.Split('|');
var splitSpl = testSpl.Split('|');
我有一个保存它们的对象
public class TestObject
{
public int id { get; set; }
public string status { get; set; }
public string type { get; set; }
}
问题:如何将Array转换为TestObject?
答案 0 :(得分:5)
var converted = new TestObject
{
id = int.Parse(splitMer[0]),
status = splitMer[1],
type = splitMer[2]
};
您需要添加一些错误检查。
答案 1 :(得分:4)
var values = new List<string> { "321|READY|MER", "321|READY|SPL" };
var result = values.Select(x =>
{
var parts = x.Split(new [] {'|' },StringSplitOptions.RemoveEmptyEntries);
return new TestObject
{
id = Convert.ToInt32(parts[0]),
status = parts[1],
type = parts[2]
};
}).ToArray();
您只需使用object initializers
并设置您的属性。通过这种方式而不是将每个值存储到单独的变量中,使用List
。然后您可以使用LINQ
获得结果容易。
答案 2 :(得分:3)
var splitMer = testMer.Split('|');
var testObj = new TestObject();
testObj.Id = Int32.Parse(splitMer[0]);
testObj.Status = splitMer[1];
testObj.type = splitMer[2];
答案 3 :(得分:2)
如何将类构造函数添加到将String作为参数的类中。这样的事情。
public class TestObject
{
public int id { get; set; }
public string status { get; set; }
public string type { get; set; }
public TestObject(string value)
{
var valueSplit = value.Split('|');
id = int.Parse(valueSplit[0]);
status = valueSplit[1];
type = valueSplit[2];
}
}
用法:
TestObject tst1 = new TestObject(testMer);
TestObject tst2 = new TestObject(testSpl);