gpt4 book ai didi

c# - 帮助 C# LINQ 投影

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

我有一个 IQueryable<SomePOCO> (LINQ-Entities 查询,如果重要的话):

public class SomePOCO
{
public string ParentName { get; set; }
public string Name { get; set; }
public string Url { get; set; }
}

我正在尝试转换到一个有两个属性的对象(最好是匿名类型,因为我只需要方法作用域):

public string ParentName { get; set; }
public ICollection<SimplePoco> { get; set;

简单的POCO如下:

public class SimplePOCO
{
public string Name { get; set; }
public string Url { get; set; }
}

我这样做的原因是我检索的所有“SomePOCO”都具有相同的 ParentName,所以我只想要一次,而不是通过网络传输相同的值 N 次并执行.First() .

希望这是有道理的。

最终结果是我应该能够做到这一点:

var parentName = result.ParentName; // string
var pocos = result.SimplePOCOs; // ICollection<SimplePOCO>

我想我要么需要某种聚合,比如 GroupBySelectMany .

有什么想法吗?

最佳答案

我想你只需要按 parent 姓名分组

var result = collection.GroupBy(i => i.ParentName)
.Select(g => new {
ParentName = g.Key,
SimplePocos = g.Select(i => new SimplePoco
{
Name = i.Name,
Url = i.Url
})
});

关于c# - 帮助 C# LINQ 投影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7199067/

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