Re: [問題] class 中的field轉string array

作者: J002 (阿里山 我來了XD~)   2015-04-08 21:40:12
※ 引述《gundan (彈彈的哀傷)》之銘言:
: 請問一下
: 我現在有個class如下
: class Test
: {
: public string AAA{get;set;}
: public string BBB{get;set;}
: }
: 再來有個test的list
: List<Test> test;
: 最後是有個string list
: List<List<string>> output;
: 我要把AAA的內容放到output[0]
: BBB放到output[1];
: 我現在只想到
: output[0] = test.Select(x=>x.AAA).ToList<string>();
: output[1] = test.Select(x=>x.BBB).ToList<string>();
: 如果我這個class中的field有 十個我就要寫十行
: 覺得有點麻煩耶!
: 有沒有什麼寫法可以再縮減的啊?
: 謝謝大家!
感謝YahooTaiwan大大給予提示…
先把你的class Test改成下面…
因為叫AAA BBB 要打三個字有點麻煩= =a
public class TestForRef
{
public string A1 { get; set; }
public string A2 { get; set; }
public string A3 { get; set; }
public string A4 { get; set; }
public string A5 { get; set; }
public string A6 { get; set; }
public string A7 { get; set; }
}
測試方法:
[Fact]
public void TestRef()
{
var test = new List<TestForRef>
{
new TestForRef
{
A1 = "01",
A2 = "02",
A3 = "03",
A4 = "04",
A5 = "05",
A6 = "06",
A7 = "07"
},
new TestForRef
{
A1 = "11",
A2 = "12",
A3 = "13",
A4 = "14",
A5 = "15",
A6 = "16",
A7 = "17"
}
};
var output = new List<List<string>>();
test.ForEach(testForRef =>
{
var listInOutput = new List<string>();
var props = testForRef.GetType().GetProperties();
props.ToList().ForEach(prop =>
{
listInOutput.Add(prop.GetValue(testForRef).ToString());
});
output.Add(listInOutput);
});
Assert.True(output[1][2] == "13");
}
您再看看是不是您要的…
作者: YahooTaiwan (超可愛南西我老婆)   2015-04-08 23:41:00
正解,可以順便加個 property 型別判斷
作者: gundan (彈彈的哀傷)   2015-04-09 01:00:00
謝謝推文和回文的前輩,搞定了!
作者: nfsong (圖書館我來了)   2015-04-11 20:22:00
有看有推

Links booklink

Contact Us: admin [ a t ] ucptt.com