gpt4 book ai didi

c# - 为什么我从 GroupJoin 中得到如此奇怪的结果?

转载 作者:太空宇宙 更新时间:2023-11-03 12:47:52 26 4
gpt4 key购买 nike

我该如何解释(严重?)?

我有一个名为“规则”的实体,它是一些用于从 POCO[] 中挑选项目的“选择器”。有一定数量的字段可供选择。所有这些都在我的数据库对象中有详细说明。

我需要在网格中显示规则,每条规则都是一行,POCO 中的每个字段都是一列。有些单元格将包含一个选择器,有些则不会。

我选择使用 fields.groupJoin(selectors.defaultIfEmpty) 来获取我需要的单元格内容:

var keyValuesS =
fields
.GroupJoin(
SelectorView.Search(new SelectorViewFilter { RuleId = rule.Id }),
f => f.Id,
s => s.FieldId,
(f, g) => g
.Select(s => new {
key = f.Name + "_S",
value = GetToString(f, s) //gets the cell content html
})
.DefaultIfEmpty(new {
key = f.Name += "_S",
value = "<div style='position:relative;height:100%;width:100%'></div>" }) //empty cell
)
.SelectMany(g => g)
.ToDictionary(f => f.key, f => f.value);

我期望的是一个字典,每个字段的键都是“[field]_S”,值是完整的单元格内容或默认的空单元格。

我实际得到的是选择器为“[field]_S_S”但值正确的单元格。

将我与第二个表联合,“调整器”(与“选择器”的格式相同,但键有 _A)添加到其中,然后我得到各种困惑。在伤口上撒盐,我自己的代码一直称我为 _A_S_S!

我以前有一个类似的格式,但它的长度是原来的 10 倍,在线创建了 html 但有效。现在我已经重构了,相同的逻辑不再相同。

我确定我一定是没看到代码中的一个简单错误。请告诉我,这样我就可以尴尬了,然后继续该项目^_^

仅供引用:这是包含联合的方法:

public static EditableRule PopulateByRule(Rule rule, Field[] fields)
{
var keyValuesA =
fields
.GroupJoin(
AdjustmentView.Search(new AdjustmentViewFilter { RuleId = rule.Id }),
f => f.Id,
a => a.FieldId,
(f, g) => g
.Select(a => new { key = f.Name + "_A", value = GetToString(f, a) })
.DefaultIfEmpty(new { key = f.Name += "_A", value = "<div style='position:relative;height:100%;width:100%'></div>" })
)
.SelectMany(g => g);
var keyValuesS =
fields
.GroupJoin(
SelectorView.Search(new SelectorViewFilter { RuleId = rule.Id }),
f => f.Id,
s => s.FieldId,
(f, g) => g
.Select(s => new { key = f.Name + "_S", value = GetToString(f, s) })
.DefaultIfEmpty(new { key = f.Name += "_S", value = "<div style='position:relative;height:100%;width:100%'></div>" })
)
.SelectMany(g => g);
var keyValuesBoth = keyValuesA.Union(keyValuesS);

var dictionary = keyValuesBoth.ToDictionary(f => f.key, f => f.value);

return new EditableRule(rule.Id, rule.DisplayText, dictionary);

}

谢谢^_^

最佳答案

我刚刚发现了我的愚蠢错误

DefaultIdEmpty 键有“+=”但应该只是 + >_<

关于c# - 为什么我从 GroupJoin 中得到如此奇怪的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36618170/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com