两者之间有什么区别?何时使用"对象初始值设定项"而不是"构造函数",反之亦然?我正在使用C#,如果这很重要的话.另外,对象初始化方法是否特定于C#或.NET?
我有一个List<string>重复的单词.我需要找到所有重复的单词.
什么技巧让他们全部?
linq可以用某种方式来查找数组中值的索引吗?
例如,此循环在数组中定位键索引.
for (int i = 0; i < words.Length; i++)
{
if (words[i].IsKey)
{
keyIndex = i;
}
}
Run Code Online (Sandbox Code Playgroud) HashSet<T> t = new HashSet<T>();
// add 10 million items
Dictionary<K, V> t = new Dictionary<K, V>();
// add 10 million items.
Run Code Online (Sandbox Code Playgroud)
谁的.Contains方法会更快返回?
只是为了澄清,我的要求是我有1000万个对象(嗯,真的是字符串),我需要检查它们是否存在于数据结构中.我永远不会迭代.
C#中是否有一个集合不允许您向其添加重复项?例如,与愚蠢的类
public class Customer {
public string FirstName { get; set; }
public string LastName { get; set; }
public string Address { get; set; }
public override int GetHashCode() {
return (FirstName + LastName + Address).GetHashCode();
}
public override bool Equals(object obj) {
Customer C = obj as Customer;
return C != null && String.Equals(this.FirstName, C.FirstName) && String.Equals(this.LastName, C.LastName) && String.Equals(this.Address, C.Address);
}
}
Run Code Online (Sandbox Code Playgroud)
以下代码(显然)将抛出异常:
Customer Adam = new Customer { Address = "A", FirstName = "Adam", LastName = …Run Code Online (Sandbox Code Playgroud) 我想检查运行时已知的类型是否提供无参数构造函数.这Type堂课并没有带来任何好处,所以我假设我必须使用反思?
我是SqlServer的新手,现在我已SqlLocalDb安装在本地工作.很好,但我通常可以看到两个连接字符串,两者都有效:
Data Source=(localdb)\v11.0;Integrated Security=true;
Run Code Online (Sandbox Code Playgroud)
和
Server=(localdb)\v11.0;Integrated Security=true;
Run Code Online (Sandbox Code Playgroud)
这两者之间究竟有什么区别?
我有以下内容EventHandler,我添加了一个参数MusicNote音乐:
public void PlayMusicEvent(object sender, EventArgs e,MusicNote music)
{
music.player.Stop();
System.Timers.Timer myTimer = (System.Timers.Timer)sender;
myTimer.Stop();
}
Run Code Online (Sandbox Code Playgroud)
我需要将处理程序添加到Timer类似的内容中:
myTimer.Elapsed += new ElapsedEventHandler(PlayMusicEvent(this, e, musicNote));
Run Code Online (Sandbox Code Playgroud)
但得到错误:
"方法名称预期"
编辑:在这种情况下,我只是从包含此代码片段的方法传递e,我将如何传递计时器自己的EventArgs?
以下面的课程为例:
class Sometype
{
int someValue;
public Sometype(int someValue)
{
this.someValue = someValue;
}
}
Run Code Online (Sandbox Code Playgroud)
然后我想使用反射创建这种类型的实例:
Type t = typeof(Sometype);
object o = Activator.CreateInstance(t);
Run Code Online (Sandbox Code Playgroud)
通常这会起作用,但是由于SomeType没有定义无参数构造函数,调用Activator.CreateInstance将抛出类型异常,MissingMethodException并带有消息" 没有为此对象定义无参数构造函数. "是否还有另一种方法可以创建此类型的实例?将无参数构造函数添加到我的所有类中会有点麻烦.
从列表中获取所有不同项目的最快/最有效方法是什么?
我有一个List<string>可能有多个重复项目,只想要列表中的唯一值.
c# ×8
.net ×3
constructor ×2
hashset ×2
list ×2
reflection ×2
arrays ×1
dictionary ×1
duplicates ×1
linq ×1
localdb ×1
performance ×1
set ×1
sql-server ×1
types ×1
unique ×1