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

看板C_Sharp (C#)作者 (阿里山 我來了XD~)時間10年前 (2015/04/08 21:40), 10年前編輯推噓2(201)
留言3則, 3人參與, 最新討論串2/2 (看更多)
※ 引述《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"); } 您再看看是不是您要的… -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.165.117.30 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1428500415.A.940.html ※ 編輯: J002 (118.165.117.30), 04/08/2015 21:41:08 ※ 編輯: J002 (118.165.117.30), 04/08/2015 21:41:22

04/08 23:41, , 1F
正解,可以順便加個 property 型別判斷
04/08 23:41, 1F

04/09 01:00, , 2F
謝謝推文和回文的前輩,搞定了!
04/09 01:00, 2F

04/11 20:22, , 3F
有看有推
04/11 20:22, 3F
文章代碼(AID): #1L9I-_b0 (C_Sharp)
討論串 (同標題文章)
文章代碼(AID): #1L9I-_b0 (C_Sharp)