看板 C_Sharp 關於我們 聯絡資訊
※ 引述《sidetalker (賽托克)》之銘言: : 假設有兩個 arrays : int[] numbers = new int[] { 1, 2, 3 }; : string[] names = new string[] { "one", "two", "three" }; : 我想用 Linq 將兩者並聯以便依序並排處理,也就是利用 : from n in numbers : join s in names : on n.??? equals s.??? : select new { number=n, name=s }; : 得到 : { : { number=1, name="one" }, : { number=2, name="two" }, : { number=3, name="three" } : } : 這樣的結果 : 中間要用怎樣的 on n.??? equals s.??? 才做得到? : 似乎 Linq 做不出上述結果? 我後來也到 MSDN forum 問了相同的問題,得到幾個相當不錯的答案 http://social.msdn.microsoft.com/Forums/en-US/csharplanguage/thread/a6be2f92-1339-4ced-9dd8-8fc0ea149609 貼出來與大家分享 摘錄如下: from i in Enumerable.Range(0, numbers.Length) select new { Number = numbers[i], Name = names[i] }; 另一個答案是 numbers.Select((n, index) => new { Number = n, Name = names[index] } ); 此外,討論串中網友提到 .Net 4.0 可能會提供一個 Zip operator 來達成此功能 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.166.97.129