创建一个空的Map对象时,默认长度是多少

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建一个空的Map对象时,默认长度是多少相关的知识,希望对你有一定的参考价值。

参考技术A 默认大小是16
为了提高效率,Map的容量会是2的幂
假如构造方法中传的是initialCapacity,内部其实这样的:
// Find a power of 2 >= initialCapacity
int capacity = 1;
while (capacity < initialCapacity)
capacity <<= 1;
所以真正的大小一定是大于等于initialCapacity最小的2的幂本回答被提问者采纳

如何使用默认值创建一个空的下拉列表?

【中文标题】如何使用默认值创建一个空的下拉列表?【英文标题】:How to create an empty dropdown list with default value? 【发布时间】:2013-03-26 14:57:27 【问题描述】:

我想创建一个只有默认值的空下拉列表。我使用以下代码:

@Html.DropDownList("parent","--Select Parent--")

但是在运行时我看到了这个错误:

没有“IEnumerable”类型的 ViewData 项 有键'父'。

我该如何解决? 谢谢。

【问题讨论】:

试试这个@Html.DropDownList(null, "--Select Parent--") @MichaelPerrenoud :现在错误更改为:Value 不能为 null 或为空。参数名称:名称 好的,那就不行了。您需要遵循@Shyju 的指示。问题是它试图绑定到一个名为“parent”的属性。 您可以简单地创建一个 HTML 选择选项。但问题仍然存在,为什么要创建一个空的下拉列表?好的方法是为 NEW 和 EDIT 创建一个页面并使用 ViewModel 生成数据。 【参考方案1】:

你可以像这样构建一个空的 DropDownList:

@Html.DropDownList("parent", Enumerable.Empty<SelectListItem>(), "--Select Parent--")

参考:Build an empty MVC DropdownListFor for a Cascade Sub-List

【讨论】:

谢谢你部分帮助我返回空下拉列表。我的代码:IW.SelItemList = new SelectList(Enumerable.Empty());【参考方案2】:

为上例添加html属性:

    @Html.DropDownList("Idparent", Enumerable.Empty<SelectListItem>(), "Select one...", new @class="form-control")                 

【讨论】:

来自审核队列:我可以请求您在源代码周围添加一些上下文。仅代码的答案很难理解。如果您可以在帖子中添加更多信息,这将对提问者和未来的读者都有帮助。【参考方案3】:

您可以简单地在视图中创建一个 HTML 选择选项。

<select id="parent" name="parent">
   <option value="">Select parent </option>
</select>

编辑: 根据评论

当您提交表单时,您可以通过parent 名称的参数来获取所选值

[HttpPost]
public ActionResult Create(string parent,string otherParameterName)

  //read and save and return / redirect

在您用于模型绑定的 ViewModel 中有一个 parent 属性。

public class CreateProject

  public string parent  set;get;
  public string ProjectName  set;get;

在你的行动方法中。

[HttpPost]
public ActionResult Create(CreateProject model)


  // check model.parent value.

【讨论】:

但是这种 HTML 对象不会以这样的形式提交:@using (Html.BeginForm()) 当然会。无论您使用什么 Helper 方法(例如:Html.DropDownListFor),也只会生成这样的 HTML 标记。在您的 HttpPost 操作中,您可以使用 parent 参数或在视图模型中使用 parent 属性。 只是我的下拉列表的名称应该与我的视图模型中的属性相同。不需要在我的控制器中获取它。在控制器中我只需要获取一个类型为变量视图模型。MVC 的艺术......【参考方案4】:

你可以在你的控制器中做这样的事情来构建一个空的下拉列表

    ViewBag.ClassID = new SelectList(db.Classes.Where(c => c.ClassID == 0)  , "ClassID", "ClassName").ToList();

【讨论】:

以上是关于创建一个空的Map对象时,默认长度是多少的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis传递map参数时,key值为空的处理

时间戳有多少个默认版本

Spring中单例和多例模式

如何使用默认值创建一个空的下拉列表?

Python坑:不要使用可变对象作为函数默认值生成器不保留迭代过后的结果嵌套列表创建==和is的区

TransactionScope 默认超时值是多少?