gpt4 book ai didi

c# - 使用 linq 规范化对象

转载 作者:行者123 更新时间:2023-11-30 13:38:43 25 4
gpt4 key购买 nike

我有一个 IEnumerable<RuleSelection>具有这些属性:

public class RuleSelection{
public int RuleId { get; set;}
public int? CriteriaId { get; set; }
public int? CriteriaSourceId{ get; set; }
}

RuleIdRuleSelection不是唯一的。

我可以编写一个 linq 查询来将这些规范化为 IEnumerable<Rule> 吗?这将是:

public class Rule{
public int RuleId { get; set; }
public IEnumerable<int> Criteria { get; set; }
public IEnumerable<int> CriteriaSource { get; set; }
}

Rule.RuleId将是独一无二的,属性 CriteriaCriteriaSource将包括所有 CriteriaId的和CriteriaSourceId用于 RuleId分别。

最佳答案

听起来你想要这样的东西:

var rules = selections.GroupBy(rs => rs.RuleId)
.Select(g => new Rule {
RuleId = g.Key,
Criteria = g.Select(rs => rs.CriteriaId)
.Where(c => c != null)
.Select(c => c.Value)
.ToList(),
CriteriaSource = g.Select(rs => rs.CriteriaSourceId)
.Where(c => c != null)
.Select(c => c.Value)
.ToList(),
});

关于c# - 使用 linq 规范化对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15259486/

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