【发布时间】:2016-11-18 19:27:36
【问题描述】:
我正在尝试修改 LINQ 查询以将一些属性选择到数组中,但我正在努力实现其中的一部分。
toRun.AddRange(entity.Properties
.Select(property => property.PrimaryField)
.Select(field => new { field, entity = entity.EntityName, table = field.Table, key = entity.EntityIdField })
我需要这个修改,以便如果名为 SecondaryField 的第二个属性不是 null 或空字符串,它将被添加到第一个 Select 语句的结果中。
例如,如果 entity.Properties 包含:
Property { PrimaryField = "a", SecondaryField = "b" },
Property { PrimaryField = "c", SecondaryField = "" }
我希望第一个 Select 语句返回:
{ "a", "b", "c" }
感谢任何帮助。
【问题讨论】:
-
所以你想要一个所有 PrimaryFields 的列表,以及所有不为空或 null 的 SecondaryFields?
-
你的标题和你的问题都不清楚,我并没有真正看到代码块和输出之间的关系,但是你在寻找类似
.SelectMany(p => new[] { p.PrimaryField, p.SecondaryField).Where(p => !string.IsNullOrWhitespace(p))的东西吗? -
@CodeCaster 这就是我的想法。
-
现在试试,感谢 CodeCaster
-
@CodeCaster 您的示例还将删除 null 或空的 PrimaryField 值,如果这是 OP 想要的,那很好。然而,这个问题只提到了 null 或空的 SecondaryFields。