当前位置:编程学习 > C#/ASP.NET >>

大家帮忙看看这个 linq语句那里出错!!

public void Number() {
        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};

    Console.WriteLine("Pairs where a < b:");
    foreach (var pair in pairs) {
    Console.WriteLine("{0} is less than {1}", pair.a, pair.b); --------------------编程问答--------------------  from a in numbersA, 
              b in numbersB 
就有错,不知道想实现怎样的功能呢 --------------------编程问答-------------------- from a in numbersA, 
  b in numbersB 
应该写成
 from a in numbersA
  from b in numbersB --------------------编程问答-------------------- 这个写法等于
int[] numbersA = new int[] { 0, 2, 4, 5, 6, 8, 9 };
        int[] numbersB = new int[] { 1, 3, 5, 7, 8 };
    var pairs = numbersA.SelectMany(delegate (int a) {
        return numbersB;
    }, delegate (int a, int b) {
        return new { a = a, b = b };
    }).Where(delegate (<>f__AnonymousType0<int, int> <>h__TransparentIdentifier8) {
        return (<>h__TransparentIdentifier8.a < <>h__TransparentIdentifier8.b);
    }).Select(delegate (<>f__AnonymousType0<int, int> <>h__TransparentIdentifier8) {
        return new { a = <>h__TransparentIdentifier8.a, b = <>h__TransparentIdentifier8.b };
    });
    Console.WriteLine("Pairs where a  < b:");
    foreach (var pair in pairs)
    {
        Console.WriteLine("{0} is less than {1}", pair.a, pair.b);
    }
--------------------编程问答-------------------- 两个from 用的是SelectMany方法实现的,两组数的笛卡尔积 --------------------编程问答-------------------- int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 }; 
int[] numbersB = { 1, 3, 5, 7, 8 }; 

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

            Console.WriteLine("Pairs where a  < b:");
            foreach (var pair in pairs)
            {
                Console.WriteLine("{0} is less than {1}", pair.a, pair.b);
            } --------------------编程问答-------------------- --------------------编程问答-------------------- public void Linq17() {
    List customers = GetCustomerList();
    var orders =
        from c in customers
               from o in c.Orders
                total = o.Total
        where total >= 2000.0M
        select new {c.CustomerID, o.OrderID, total};

    ObjectDumper.Write(orders);

这个在那里错啊..它提示查询正文必须与SELECT 子句或者GROUP子句结尾... --------------------编程问答-------------------- from o in c.Orders total = o.Total  --------------------编程问答-------------------- --------------------编程问答-------------------- 多了一个逗号
var pairs = from a in numbersA
  from b in numbersB 
  where a < b 
  select new {a, b};  --------------------编程问答--------------------
引用 5 楼 nuaalfm 的回复:
int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 }; 
int[] numbersB = { 1, 3, 5, 7, 8 }; 

var pairs = from a in numbersA
                    from b in numbersB 
                    where a  < b 
       ……

应该就是楼主想要的效果吧
--------------------编程问答-------------------- 多了个逗号 --------------------编程问答--------------------
引用 8 楼 sp1234 的回复:
from o in c.Orders total = o.Total
这是啥玩意啊,没懂……

--------------------编程问答--------------------
引用楼主 ryanhtg 的回复:
public void Number() {
        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
……

from a in numbersA,
上面红色的,去掉 --------------------编程问答--------------------
引用 13 楼 kingdom_0 的回复:
引用 8 楼 sp1234 的回复:

from o in c.Orders total = o.Total
这是啥玩意啊,没懂……


错!!

经测试:

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

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

              Console.WriteLine("Pairs where a < b:");
              foreach (var pair in pairs)
              {
                  Console.WriteLine("{0} is less than {1}", pair.a, pair.b);



              } --------------------编程问答-------------------- 要资料的,来这里看看
http://lovetech.taobao.com/?search=y&scid=344299108&scname=QVNQLk5FVA%3D%3D&checkedRange=true&queryType=cat
补充:.NET技术 ,  LINQ
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,