※ 引述《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