问题标签 [collection-initializer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 使用单个对象和另一个对象列表初始化列表
我想用一个对象和一个按特定顺序的对象列表来初始化一个列表。目前,我正在做:
我希望将其合并到一个初始化语句中(当然语法是错误的):
有没有办法简洁地做到这一点?
c# - Can another thread see partially created collection when using collection initializer?
Imagine this C# code in some method:
Let's say no one is using any explicit memory barriers or locking to access the dictionary.
If no optimization takes place, then the global dictionary should be either null (initial value) or a properly constructed dictionary with one entry.
The question is: Can the effect of the Add call and assigning to SomeGlobalStaticDictionary be reordered such that some other thread would see an empty non-null SomeGlobalStaticDictionary (or any other invalid partially constructed dictionary?)
Does the answer change if SomeGlobalStaticDictionary is volatile?
After reading http://msdn.microsoft.com/en-us/magazine/jj863136.aspx (and also its second part) I learned that in theory just because one variable is assigned in source code other threads might see it differently due to many reasons. I looked at the IL code but the question is whether the JIT compiler and/or CPU are allowed to not "flush" the effect of the Add call to other threads before the assignment of the SomGlobalStaticDictionary.
c# - 将集合初始化器与插入语句一起使用
我有以下内容method
:
ReSharper
是告诉我使用collection initializer
为 pars List
。
问题:如何将 SQLiteParameter 添加到集合初始化程序?
asp.net-mvc - 使用 TextBoxFor 设置具有命名空间前缀的 HTML 属性
我正在将一些现有的 HTML 转换为与 ASP.NET MVC 一起使用,并且有一些包含输入字段的表单,这些输入字段具有包含命名空间前缀的附加属性(现在,我需要保留):
我想使用TextBoxFor
允许htmlAttributes
使用集合初始化语法指定的辅助方法重载:
foo:required
但是,由于(etc)中的冒号,此语法无效。
相反,我不得不使用这个更详细的字典初始化语法:
是否可以在第一种语法上使用变体,以某种方式转义(因为需要更好的词)冒号?
或者
TextBoxFor
这是一个辅助方法没有真正帮助的场景吗?只保留现有的原始 HTML 并添加value="@Model.UserName"
到input
元素中会更简单吗?
java - Undefined constructor error in a double bracket collection initializer
In the following code the getEntriesNotWorking
method reports a compile-time error:
Error:
The constructor DoubleBracketInitializerTest.Entry(new ArrayList(){}) is undefined
While the getEntriesWorking()
method is compiling correctly. The constructor is clearly there since a DetailedContailer
is a subclass of Contailer
.
What is the difference between those two methods, that makes the code invalid? How can I make the double bracket initializer work for this class hierarchy?
c# - 如何使用 C# 集合初始化程序调用方法?
案子
今天早上我重构了一些 Logging 方法,需要在普通数组中更改方法的“params”参数。因此,对该方法的调用必须使用数组参数进行更改。我希望方法调用尽可能少地改变,因为它是一种被大量使用的实用程序方法。
我以为我应该能够使用集合初始化程序来调用该方法,但它给了我一个编译错误。请参阅下面示例中的第二个调用。第三次调用也可以,但也会导致错误。
例子
问题
- 有什么方法可以在
Test()
不先初始化数组的情况下调用吗?
c# - 使用硬编码和生成的值混合初始化数组
这段代码用两个硬编码值初始化一个数组,运行良好:
尝试添加一些动态生成的值的代码不起作用:
如何正确实现上述代码段?
c# - 集合初始化器和 TypeInitializationException 与 IEnumerable
我已将集合初始化程序用于 aDictionary
并收到 a TypeInitializationException
:
由于没有有用的信息InnerException
,例如调用堆栈或其他任何令人困惑的信息。所以我稍微调查了一下这个问题,并意识到有两个键具有相同的值。
关于 IL,这个集合初始化器语法被转换为Dictionary.Add(...)
调用,因此Add
使用相同的键调用两次引发System.ArgumentException
(这是我在TypeInitializationException
. 所以我有效地回答了我原来的问题,但又出现了另一个问题:
为什么类必须实现IEnumerable
(并因此提供IEnumerator
) - 旨在读取集合,而不是写入集合 - 当最终将集合初始化程序转换为Add
调用时(不能保证通过 IEnumerable 出现在类中)?我错过了什么重要的东西吗?
c# - 字典初始化器比集合初始化器有什么好处?
在最近的过去,有很多关于 C# 6.0 中的新
功能的讨论 最受关注的功能之一是Dictionary
在 C# 6.0 中使用初始化器
但是等等,我们一直在使用集合初始化器来初始化集合,并且可以很好地初始化一个Dictionary
也在.NET 4.0 和 .NET 4.5(不知道旧版本)喜欢
那么 C# 6.0 中有什么新内容,他们在 C# 6.0 中谈论的 Dictionary Initializer 是什么
c# - C# 6.0 的新字典初始化器 - 澄清
我读过:
该团队通常忙于实现初始化器的其他变体。例如,您现在可以初始化 Dictionary 对象
但是看着:
对比
我看不出好处在哪里。它看起来一样。两者都只不过是一个名称-值集合。
他们用一对花括号换成一对方括号和一些逗号
问题:
使用新语法有什么附加价值?一个真实世界的例子将不胜感激。