首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将父子结构转换为子父结构

将父子结构转换为子父结构
EN

Stack Overflow用户
提问于 2016-10-03 12:04:16
回答 1查看 61关注 0票数 1

我正在从事一个项目,在这个项目中,我需要能够将复杂的父级子结构转换为其子父级结构,这是必要的,因为查询和报告数据需要能够从父级或子级pov中进行。这可能没有多大意义,但下面是一个带有一些示例数据的简化版本:

假设我有这样的数据:

底色(红色,蓝色,绿色)重音颜色(红色,黄色,蓝色)

我想把它转换成:

红色(底色,重音色)蓝色(底色,重音色)绿色(底色)黄色(重音色)

这似乎是理想的林克,但我想不出它,我知道我可以做很长的手,但似乎笨重。

到目前为止,我有一个测试类要对付:

代码语言:javascript
复制
class UsageType
{
    public string Usage { get; set; }

    public List<Colour> Colours = new List<Colour>();
}

class Colour
{
    public string Name { get; set; }
}

public class TestClass
{
    public TestClass()
    {
        var usageTypes = new List<UsageType>()
            {
                new UsageType()
                {
                    Usage = "base colours",
                    Colours = new List<Colour>()
                    {
                        new Colour() { Name = "Red"},
                        new Colour() { Name = "Blue"},
                        new Colour() { Name = "Green"}
                    }
                },
                new UsageType()
                {
                    Usage = "accent colours",
                    Colours = new List<Colour>()
                    {
                        new Colour() { Name = "Red"},
                        new Colour() { Name = "Blue"},
                        new Colour() { Name = "Yellow"}
                    }
                }
            };

        var allColours = from clr in usageTypes
                         .SelectMany(ut => ut.Colours, (clr, ut) => new { colour = ut.Name, usage = clr.Usage })
                         select new { clr.colour, clr.usage };
    }
}

我想知道的是,如何从我的颜色列表(我的样本中的allColours变量)中获得根据我的问题构造它的方法。任何帮助最好的方式来做这将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-03 12:23:17

GroupBy颜色基本上会给您提供所需的格式:

代码语言:javascript
复制
var colourUsage =
    from ut in usageTypes
    from c in ut.Colours
    group ut.Usage by c.Name into g
    select new { colour = g.Key, usages = g.ToList() };
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39831160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档