【问题标题】:C# Add List/Lists to Data Class instanceC# 将列表/列表添加到数据类实例
【发布时间】:2017-09-20 10:36:05
【问题描述】:

对 C# 非常陌生,我正在尝试创建一个节点数据列表,其中包含可变列表长度的链接数据。

  class Data
{
    public List<Node> Node { get; set; }
}

public class Node
{
    public string viewer { get; set; }
    public int viewerId { get; set; }
    public string log { get; set; }
    public List <Link> Link { get; set; }
}

public class Link
{
    public string keyName { get; set; }
    public int value { get; set; }

}

我有一个遍历配置节点的 for 循环和一个内部 for 循环 抓取任何已配置的链接。

Data data = new Data();
data.Node = new List<Node>();

我正在为每个新节点执行以下操作,这是我想要的。

 data.Node.Add( new Node {
                    viewer = setup.Device[moduleNr].viewer,
                    viewerId = setup.Device[moduleNr].viewerId ,
                    log = setup.Device[moduleNr].log
                    // how to add one or more lists of Link to this list???                       
                });

我遇到的问题是在现有数据中添加一个新列表/列表。节点???

最终我想实现以下目标 -

data
|->Node
       |->[0]
           |->Link
                 |->[0]
                     |->keyname
                     |->value
                 |->[1]
                     |->keyname
                     |->value
                 |->[2]
                     |->keyname
                     |->value
           |->log
           |->viewerId
           |->viewer

    |->[1]
           |->Link
                 |->[0]
                     |->keyname
                     |->value
                 |->[1]
                     |->keyname
                     |->value

           |->log
           |->viewerId
           |->viewer
        |->[2]
           |->Link
                 |->[0]
                     |->keyname
                     |->value
           |->log
           |->viewerId
           |->viewer

非常感谢您对这个问题的帮助 - 谢谢

【问题讨论】:

  • 通常你知道你要添加的节点,而不是 data.node 你使用 nodewhatever ..
  • 类似new Node { theproperties..., Link = new List&lt;Link&gt; { link1, link2 ... }} 的内容另见stackoverflow.com/questions/25919818/… 以在初始化时将项目添加到您的列表中。
  • 作为旁注,我可以建议您将列表节点重命名为节点,并将列表链接重命名为链接。这是惯例并提高了可读性。您是否还考虑过为链接使用字典,因为它们包含键名、值对?
  • "如何将一个或多个链接列表添加到此列表" 我猜你的意思是:**如何将一个或多个链接元素添加到名为链接的列表中?=!对吗?

标签: c#


【解决方案1】:

您可以像这样添加List&lt;Link&gt; 的新实例并使用构造函数添加新项目:

data.Node.Add(new Node {
                  viewer = setup.Device[moduleNr].viewer,
                  viewerId = setup.Device[moduleNr].viewerId ,
                  log = setup.Device[moduleNr].log,
                  Link = new List<Link>
                  {
                      new Link
                      {
                          keyName = "Link 1",
                          value = 0
                      },
                      new Link
                      {
                          keyName = "Link 2",
                          value = 1
                      }
                  }     
              });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-20
    • 2019-05-19
    • 1970-01-01
    • 2019-03-06
    • 2011-05-31
    • 1970-01-01
    • 2011-09-24
    • 1970-01-01
    相关资源
    最近更新 更多