将数组转换为对象

时间:2014-02-19 05:55:41

标签: c#

我有两种类型的字符串: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?

4 个答案:

答案 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);