【问题标题】:C# Adding Multiple Elements to a IList in one line - AddRange not available [duplicate]C#在一行中向IList添加多个元素-AddRange不可用[重复]
【发布时间】:2020-09-08 20:41:03
【问题描述】:

我想缩短代码并一次将多个项目添加到列表中,我收到错误。

“无重载方法加带2个参数”

列表添加了一些项目,我想添加新项目

IList

public IList<SelectListItem> Cmsentities { get; set; }

方法

Cmsentities.Add(
            new SelectListItem
            {
                Value = "publish",
                Text = "nur veröffentlichte"
            },
            new SelectListItem
            {
                Value = "nopublish",
                Text = "nur nicht veröffentlichte"
            });

【问题讨论】:

  • 你可以使用var Cmsentities = new List&lt;SelectListItem&gt; { new SelectListItem{}, new SelectListItem{} };
  • 感谢回复,其实这样之前添加的列表项会被删除。我想保留这些并添加更多。
  • 使用AddRange()。示例:Cmsentities.Add(new[] { new SelectListItem(), new SelectListItem() });
  • 你可以创建一个扩展方法Add(params SelectListItem[] items)并使用它。
  • 这个问题绝不是关于 asp.net-core。请勿在您的问题中添加标签,除非那些表明问题是关于的标签。

标签: c#


【解决方案1】:

除了 SelvaS 的注释,如果 Cmsentities 已经实例化,还可以使用 List.AddRange(IEnumerable) 方法。

看起来像

Cmsentities.AddRange(new List<SelectListItem> {new SelectListItem(), new SelectListItem()})

【讨论】:

  • new SelectListItem[] 也可以用来避免创建泛型类的实例。
  • @Olivier 或者只是new[]
  • 从什么C#语言版本开始?
  • @OlivierRogier 隐式类型数组是在 C# 3.0 中引入的
猜你喜欢
  • 1970-01-01
  • 2013-11-20
  • 1970-01-01
  • 2016-02-15
  • 2018-11-24
  • 1970-01-01
  • 2013-03-31
  • 2012-09-17
  • 1970-01-01
相关资源
最近更新 更多