Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可观测集合订单的C#Linq查询转换_C#_Vb.net_Linq - Fatal编程技术网

可观测集合订单的C#Linq查询转换

可观测集合订单的C#Linq查询转换,c#,vb.net,linq,C#,Vb.net,Linq,我有这样一个结构集合: Jet Owner Item Comp AAAA AAAA 101 2210 AAAA AAAA 202 2220 AAAA AAAA 301 5550 AAAA AAAA 301 5560 AAAA 2210 101 6789 AAAA 2220 202 ABABA AAAA 5550 301 XXXX0 AAAA

我有这样一个结构集合:

Jet     Owner   Item    Comp
AAAA    AAAA    101     2210
AAAA    AAAA    202     2220
AAAA    AAAA    301     5550
AAAA    AAAA    301     5560
AAAA    2210    101     6789
AAAA    2220    202     ABABA
AAAA    5550    301     XXXX0
AAAA    5550    301     XXXX1
AAAA    5560    301     YYYY0
AAAA    5560    301     6612
AAAA    6789    101     ZZZZZ.0
AAAA    6789    101     ZZZZZ.1
AAAA    6789    101     ZZZZZ.2
AAAA    6789    101     ZZZZZ.3
AAAA    ABABA   202     TTTTT.0
AAAA    ABABA   202     TTTTT.1
AAAA    ABABA   202     TTTTT.2
AAAA    6612    301     ZZZZZ.0
AAAA    6612    301     ZZZZZ.1
AAAA    6612    301     ZZZZZ.2
AAAA    6612    301     ZZZZZ.3
AAAB    ...     ...     .....
Jet     Owner   Item     Comp
AAAA    AAAA    101      2210
AAAA    2210    101      6789
AAAA    6789    101      ZZZZZ.0
AAAA    6789    101      ZZZZZ.1
AAAA    6789    101      ZZZZZ.2
AAAA    6789    101      ZZZZZ.3
AAAA    AAAA    202      2220
AAAA    2220    202      ABABA
AAAA    ABABA   202      TTTTT.0
AAAA    ABABA   202      TTTTT.1
AAAA    ABABA   202      TTTTT.2
AAAA    AAAA    301      5550
AAAA    5550    301      XXXX0
AAAA    5550    301      XXXX1
AAAA    AAAA    301      5560
AAAA    5560    301      YYYY0
AAAA    5560    301      6612
AAAA    6612    301      ZZZZZ.0
AAAA    6612    301      ZZZZZ.1
AAAA    6612    301      ZZZZZ.2
AAAA    6612    301      ZZZZZ.3
AAAB    ...       ...      .....
我需要订购它,以获得如下结果:

Jet     Owner   Item    Comp
AAAA    AAAA    101     2210
AAAA    AAAA    202     2220
AAAA    AAAA    301     5550
AAAA    AAAA    301     5560
AAAA    2210    101     6789
AAAA    2220    202     ABABA
AAAA    5550    301     XXXX0
AAAA    5550    301     XXXX1
AAAA    5560    301     YYYY0
AAAA    5560    301     6612
AAAA    6789    101     ZZZZZ.0
AAAA    6789    101     ZZZZZ.1
AAAA    6789    101     ZZZZZ.2
AAAA    6789    101     ZZZZZ.3
AAAA    ABABA   202     TTTTT.0
AAAA    ABABA   202     TTTTT.1
AAAA    ABABA   202     TTTTT.2
AAAA    6612    301     ZZZZZ.0
AAAA    6612    301     ZZZZZ.1
AAAA    6612    301     ZZZZZ.2
AAAA    6612    301     ZZZZZ.3
AAAB    ...     ...     .....
Jet     Owner   Item     Comp
AAAA    AAAA    101      2210
AAAA    2210    101      6789
AAAA    6789    101      ZZZZZ.0
AAAA    6789    101      ZZZZZ.1
AAAA    6789    101      ZZZZZ.2
AAAA    6789    101      ZZZZZ.3
AAAA    AAAA    202      2220
AAAA    2220    202      ABABA
AAAA    ABABA   202      TTTTT.0
AAAA    ABABA   202      TTTTT.1
AAAA    ABABA   202      TTTTT.2
AAAA    AAAA    301      5550
AAAA    5550    301      XXXX0
AAAA    5550    301      XXXX1
AAAA    AAAA    301      5560
AAAA    5560    301      YYYY0
AAAA    5560    301      6612
AAAA    6612    301      ZZZZZ.0
AAAA    6612    301      ZZZZZ.1
AAAA    6612    301      ZZZZZ.2
AAAA    6612    301      ZZZZZ.3
AAAB    ...       ...      .....
我想按Jet订购,然后在comp中找到所有者中的一些,放在相关组件的主要所有者之后的行中,然后按所有者订购,最后按项目订购。我已经使用C#linq查询生成了结果,但是我需要在VB.NET linq查询中具有相同的结果。 C#Linq查询是:

    var orderedData =(from d in collection
        group d by d.Jet into g
        orderby g.Key
        from d in g
        select new[] {d}.Union(g.Where(c => c.Owner == d.Comp)) into withChildren
        from wc in withChildren
        orderby wc.Item
        select wc).Distinct();
我在VB.NET中尝试过此功能,但不起作用:

Dim orderedData = (From d In collection 
              Group d By d.Jet Into Group 
              Order By Group 
              From d In Group 
              Select New withChildren With {d}.Union(gr.Where(Function(c) c.Owner = d.Comp))) 
                          from wc in withChildren
                          Order By wc.pos 
                          Select wc).Distinct
                          from wc in withChildren
                          Order By wc.pos 
                          Select wc).Distinct
试试看:

Dim orderedData=(From with children In From g In From d In collectionGroup d By d.JetOrder By g.KeyFrom d In gNew(){d}.Union(g.Where(Function(c)c.Owner=d.Comp))From wc In with childrenorder By wc.Itemwc)。Distinct()