作者sidetalker (赛托克)
看板C_Sharp
标题Re: [问题] Linq 似乎做不到并排的 join ???
时间Wed Dec 10 22:25:35 2008
※ 引述《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