当前位置:  开发笔记 > 编程语言 > 正文

LINQ复合选择问题

如何解决《LINQ复合选择问题》经验,为你挑选了2个好方法。

我无法获得LINQ复合选择编译.这是代码:

int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };
int[] numbersB = { 1, 3, 5, 7, 8 };

var pairs =
    from a in numbersA,
            b in numbersB
    where a < b
    select new {a, b};

代码来自此处的教程,标题为"SelectMany - Compound from 1":

http://msdn.microsoft.com/en-us/vcsharp/aa336758.aspx#SelectSimple1

我得到的编译时错误如下:

查询主体必须以select子句或group子句结束

紧跟在'numbersA'之后的逗号是发生错误的地方.现在我无法弄清楚我做错了什么,因为这只是MS网站上的代码.任何帮助都会非常感谢.



1> Mehrdad Afsh..:

您的代码不是有效的LINQ表达式.from子句仅支持单个集合.你应该重复整个from条款.你可能想说:

var pairs = from a in numbersA
            from b in numbersB
            where a < b
            select new {a, b};



2> CMS..:

使用SelectMany的等效流畅语法,仅用于记录:

var pair = numbersA.SelectMany(a => numbersB, (a, b) => new {a, b})
                   .Where(n => n.a < n.b);

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有