- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
public Dictionary<Node<T>, IList<Node<T>>> FlattenedMap { get; private set; }
private List<Node<T>> _dependencies; (note: these T instances have a NodeId and related ParentNodeId properties in it to work with)
.... 更多代码,然后:
public void CreateFlattenedMap()
{
var groups = _dependencies.GroupBy(d => d.ParentId); // attempt to groupy the list by ParentNodeId
var dictionary = parentGroups.ToDictionary(d => d.Key, d => d.ToList()); // attempt to flatten out each pair of parent Node<T> instances with their corresponding Parent Node<T>.Children list
FlattenedMap = dictionary;
}
我正在尝试将组转换为字典,但我不希望键为 ID。因为我的 FlattenedMap 有一个 Node 键所以不知道如何做 ToDictionary
并让键成为 d,而不是 d。Key 基本上是为了让这个任务愉快。
所以问题就在这里:FlattenedMap = dictionary;
因为字典最终是 <int, List<Node<T>>>
而不是我想要的 <Node<T>, List<Node<T>>
以满足我希望通过属性作为最终结果形成字典的方式。
更新
所以我尝试做但不适用于下面的伪代码是因为 d 是 T 类型并且字典确实需要 Node 作为键,而不是 d.Key(不是 T.Key)我试图做这样的事情:
var dictionary = parentGroups.ToDictionary(d => new Node<T>(d), d => d.ToList());
实际上现在我想起来了,List 不需要是 List<d>
或 IList<d>
但是List<Node<T>(d)>
或 <Node<d>>
的列表(记住 T 是 d 的一个实例,Node 期望任何已经实现了 d 肯定具有的 INode 的实例)。
ToDictionary 确实创建了这个:<d.Key, List<d>>
所以你最终得到 (<int, List<d>)
这不是我最终字典所期望的。
我需要以某种方式获取 d 并将其在 ToDictionary 中动态转换为 Node,所以我最终得到了 Dictionary>...希望我说的是对的,但您可以了解我正在尝试的内容满怀希望地说。
更新
所以尝试了一些不同的方法,我首先将我的 _dependencies 转换为所有 Node 实例,以尝试使其更易于使用或使其在我的 CreateFlattenedMap() 中工作
现在播种,在我循环原始依赖列表并将它们中的每一个首先转换为节点(换句话说,节点(d))之后,我正在 IList> 的列表上尝试该 GroupBy。
所以现在,虽然同样的问题(这里是我的类(class)的更完整的图片给你):
public class Tree<T> where T : INode
{
private readonly IList<T> _sourceDependencies;
private readonly List<Node<T>> _nodeDependencies;
public Node<T> RootNode { get; set; }
public Dictionary<Node<T>, IList<Node<T>>> FlattenedMap { get; private set; }
public Tree(T rootNode, IList<T> dependencies )
{
RootNode = new Node<T>(rootNode); //convert the custom type to Node<T> first so we can work with it
_sourceDependencies = dependencies;
_nodeDependencies = ConvertListToNodes(_sourceDependencies);
FlattenedMap();
}
private List<Node<T>> ConvertListToNodes(IList<T> listToConvert)
{
List<Node<T>> nodeList = _sourceDependencies.Select(sourceNode => new Node<T>(sourceNode)).ToList();
}
public void CreateFlattenedMap()
{
var parentGroups = _nodeDependencies.GroupBy(d => d.ParentNodeId);
var dictionary = parentGroups.ToDictionary(d => new Node<T>(d), d => d.ToList());
FlattenedMap = dictionary;
}
最佳答案
这会如你所愿吗?
var dictionary = parentGroups.ToDictionary(
d => new Node<T>(d.Key),
d => d.ToList());
关于c# - Convert To Dictionary 需要有一个 Node<T> 作为键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15736901/
我正在使用SpringBoot和JPA来调用db,我遇到异常 org.springframework.core.convert.ConverterNotFoundException: No conve
我尝试实现 Spring Converter,但在单元测试中出现错误: Kotlin: Null can not be a value of a non-null type TodoItem 如果我尝
我在 Spring Boot 2.0 示例中使用 Spring Data Redis。在此示例中,我尝试将客户数据 + 学生数据保存在一起。我不太确定这里的数据建模是如何发生的,但假设它与 Mongo
我在 Spring 的 XML 配置文件之一中有以下代码:
我们正在尝试使用 hibernate Converter 来加密/解密通过 hibernate 存储的几列数据 @Convert(attributeName="myattr",converter=Da
我有this我必须实现的功能: protected override ValidationResult IsValid( Object value, ValidationContext
我看到了 std::convert::Into有任何实现 std::convert::From 的实现: impl Into for T where U: From, 在Rust 1.0标准库
Convert.ChangeType 或 Convert.ToInt32 或 int.Parse 之间是否存在性能优势 最佳答案 如果您知道要将 string 转换为 Int32,使用 Convert
我会定期浏览我的家庭作业以供上课。我的扫描仪将原始 jpg 文件导出到 USB,然后我可以从那里使用 gimp 编辑文件并将其另存为 pdf。我发现一种节省时间的方法是将我的多页作业导出为 .mng
Grails版本:2.3.8我在BootStrap.groovy中注册了一个自定义日期编码器,但是当我使用日期填充为Json的Object时,它将引发异常:Exception message is C
我会定期浏览我的家庭作业以供上课。我的扫描仪将原始 jpg 文件导出到 USB,然后我可以从那里使用 gimp 编辑文件并将其另存为 pdf。我发现一种节省时间的方法是将我的多页作业导出为 .mng
我正在尝试制作一个 SKAction,以便我的玩家慢慢地被拉向一个要杀死他的敌人。实际上,问题在于玩家和敌人处于不同的节点,遵循以下层次结构: 场景(SKScene)-PARENT->播放器(SKNo
我通过 xml 设置了 spring data mongo 自定义转换器,如下所示 在自定义读/写转换器中,我想
我正在尝试使用名为 Simple Captcha 的 gem 这需要在机器上安装 ImageMagick。我已经安装了它并且 convert --version 显示了这个 Version: Imag
我正在尝试使用名为 Simple Captcha 的 gem 这需要在机器上安装 ImageMagick。我已经安装了它并且 convert --version 显示了这个 Version: Imag
我正在使用 Spring JPA,我需要有一个 native 查询来调用存储过程。从结果中,我只需要获取两个字段,即代码和消息。我创建了一个包含两个字段代码和消息的类。它不起作用,这是我收到的错误:
我首先有多部分文件,我想将其发送到camel管道并使用原始名称保存该文件。 我的代码: @Autowired ProducerTemplate producerTemplate; ...
我的maven项目使用了spring、hibernate。我得到“没有这样的方法错误”。我相信这是由于依赖项中的版本冲突造成的,但不知道是什么。构建成功。但是在“NetBeans:在 GlassFis
TL;DR:Vaadin 8 中是否有类似于 Vaadin 7 的转换器来更新 UI 中输入字段的表示? IE。在输入字段失去焦点后立即从用户输入中删除所有非数字,或将小数转换为货币? Vaadin
我昨天问了一个问题here关于从匿名对象读取属性并将它们写入类的私有(private)字段。问题解决了。这是一个小故事: 我有一些 json 格式的数据。我将它们反序列化为 ExpandoObject
我是一名优秀的程序员,十分优秀!