想象一下Azure Table存储中类似于上面的表 struct .

表1

Column A Column B Column C
"partitionkey1" 101 test
"partitionkey1" 102 test
"partitionkey1" 103 test
"partitionkey2" 201 test

表2,它基本上是我们想要添加和删除的素数实体的特殊子列表

Column A Column B Column C
"partitionkey1" 101 true
"partitionkey1" 102 true
"partitionkey1" 103 true
"partitionkey2" 201 false

我希望创建一个Linq查询,如下所示

如果T1中的列A与表2中的列A匹配

以(左侧列表大小也是右侧列表大小的10倍)格式返回结果集合

AreaName rowkeys prime status
"partitionkey1" 101,102,103 true
"partitionkey2" 201 false
            var ACollection = await _ACollectionRepository.GetAll();
            var BCollection = await _BCollectionRepository.GetAll();

            var lft = ACollection.Where(x => !string.IsNullOrEmpty(x.PartitionKey)).ToList();
            var right = BCollection.Where( x=> !string.IsNullOrEmpty(x.PartitionKey)).ToList();

            var joinQuery = (from l in lft
                             join r in right on l.PartitionKey equals r.PartitionKey into joinedList
                             from item in joinedList.DefaultIfEmpty()
                             select new 
                             {
                                 l.PartitionKey,
                                 ///not sure what to do here ,
                                 item?.prime_status ?? false
                             });

推荐答案

GroupBy按分区键,然后按字符串对项进行分组.加入以联接行键

RowKeys = string.Join(",", bGroup.Select(x => x.ColumnB)),
                PrimeStatus = bGroup.Any(x => x.ColumnC)

Csharp相关问答推荐

将实例绑定方法传递到列表foreach

循环访问Android视图中动态创建的子视图

有没有一种方法可以在包含混合文本的标签中嵌入超链接?

为什么EF Core 6会针对null验证Count(*)?

程序集.加载从exe的异常

TDLib与机器人共享电话号码

默认情况下,.NET通用主机(Host.CreateDefaultBuilder)中是否包含UseConsoleLifetime?

Rx.Net窗口内部可观测数据提前完成

Docker Container中的HttpRequest后地址不可用

C#使用TextFieldParser读取.csv,但无法使用";0";替换创建的列表空条目

C#普罗米修斯指标

为什么AggregateException的Catch块不足以处理取消?

如何使用.NET6WPF打印车票?

如何在CSharp中将json字符串转换为DataTable?

Regex字母数字校验

数据库.Migrate在对接容器重启时失败

如何使用.NET Aspire从Blazor应用程序与GRPC API通信?

Visual Studio 17.8.0制表符自动完成问题--三缩进

如何对特定异常使用Polly重试机制?

C#-如何将int引用获取到byte[]