草庐IT

c# - 带整数表达式的 switch case

我正在尝试使用switchcase而不是IfElse语句,在其中我必须首先检查字符串的长度,并且根据它我必须对它进行区分。switch(mystring.length){case这是我想做的事情,但不知道如何放置在case前面,因为根据switchcase规则,这是不合适的。 最佳答案 在你的特定情况下使用if/else总是更好,使用switch语句你不能在情况下放置条件。看起来您正在检查范围,如果范围不变,那么您可以尝试以下(如果您想使用switch语句)。intLength=mystring.Length;intrange=(L

c# - 如何通过整数索引引用 Dictionary<string, string> 中的项目?

我做了一个字典集合,以便我可以通过它们的字符串标识符快速引用这些项目。但我现在还需要通过索引计数器访问这个集合(foreach在我的真实示例中不起作用)。我必须对下面的集合做什么才能通过整数索引访问它的项目?usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceTestDict92929{classProgram{staticvoidMain(string[]args){Dictionaryevents=newDictionary();events.Add("firs

c# - 为什么只有整数枚举?

我写C#已经七年了,我一直在想,为什么枚举必须是整数类型?做这样的事情不是很好吗:enumErrorMessage{NotFound:"Couldnotfind",BadRequest:"Malformedrequest"}这是语言设计的选择,还是在编译器、CLR或IL级别存在根本的不兼容性?其他语言是否有字符串或复杂(即对象)类型的枚举?什么语言?(我知道解决方法;我的问题是,为什么需要它们?)编辑:“变通办法”=属性或带有常量的静态类:) 最佳答案 枚举的目的是为整数提供更有意义的值。您正在寻找枚举之外的其他东西。枚举与旧的Wi

c# - C# 中的最大整数类型

我似乎找不到适合它的整数类型:stringfoo="9999999999999999999999999999999999999999999999999999999";longvalue;if(long.TryParse(foo,outvalue)){//dosomething} 最佳答案 在.NET4中,您可以使用具有TryParse方法的System.Numerics.BigInteger。参见:http://msdn.microsoft.com/en-us/library/system.numerics.biginteger.a

c# - 键是一对整数的字典

我需要使用字典,其中TKey是一对整数。我考虑过使用KeyValuePair作为我的key类型,我想知道这是否是最好的解决方法。我也很想知道字典是否会为具有相同整数的两个不同的KeyValuePair对象创建单独的条目以及为什么。例如:varmyDictionary=newDictionary,string>();myDictionary.Add(newKeyValuePair(3,3),"FirstItem");myDictionary.Add(newKeyValuePair(3,3),"SecondItem");//doesthedictionaryallowthis?

c# - 在 C# 中获取整数的高字节和低字节并将其作为 char 数组发送到 com 端口,如何?

在C中我会这样做intnumber=3510;charupper=number>>8;charlower=number&&8;SendByte(upper);SendByte(lower);其中upper和lower都=54在C#中我这样做:intnumber=Convert.ToInt16("3510");byteupper=byte(number>>8);bytelower=byte(number&8);charupperc=Convert.ToChar(upper);charlowerc=Convert.ToChar(lower);data="GETDM"+upperc+lowe

c# - 在 C# 中拆分一个 6 位整数

我有一个6位整数,比方说我要拆分成“153060”inta=15(前2位数字),intb=30(第二个2位数),intc=60(第三个2位数),首先想到的是将int转换为字符串,使用SubString(或变体)拆分它,然后再转换回int。不过,这似乎是一种非常低效的方法。谁能推荐一种更好/更快的方法来解决这个问题?谢谢!附加信息:拆分int的原因是因为6位整数表示HHMMSS,我想用它来创建一个新的DateTime实例:DateTimemyDateTime=newDateTime(年,月,日,a,b,c);但是,用户字段只能接受整数。 最佳答案

c# - 使用 C# 在通用列表中查找最大整数?

我有以下List集合,我需要找到集合中的最高整数。它可以有任意数量的整数,我可以多次使用相同的整数值。ListMyList=newList{3,4,6,7,9,3,4,5,5};用于查找最大整数的最简单算法是什么?我正在使用C#和.NET3.5框架。 最佳答案 你可以这样做:intmax=MyList.Max();参见Enumerable.Max了解详情。 关于c#-使用C#在通用列表中查找最大整数?,我们在StackOverflow上找到一个类似的问题: h

c# - 如何在 C# 中存储对整数的引用?

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:HowdoIassignby“reference”toaclassfieldinc#?大家好-告诉我如何进行这项工作?基本上,我需要一个整数引用类型(int*可以在C++中使用)classBar{privaterefintm_ref;//Thisdoesn'texistpublicA(refintval){m_ref=val;}publicvoidAddOne(){m_ref++;}}classProgram{staticvoidmain(){intfoo=7;Barb=newBar(reffoo);b.Ad

c# - 在 C# 中实现稀疏数组/将整数映射到特定桶/范围数字的最快方法

我最初的问题是我需要在C#中实现一个非常快速的稀疏数组。最初的想法是使用正常的Dictionary并将其包装在我自己的类中以仅公开TValue类型参数。事实证明这很慢。所以我的下一个想法是将所需范围(UInt32.MinValue到UInt32.MaxValue)中的每个整数映射到某个大小的桶并使用它。所以我正在寻找一种将无符号整数X映射到桶Y的好方法,例如:将数字0-1023映射到8个不同的桶,每个桶包含128个数字,0-127、128-255。但如果有人有更好的方法在C#中实现快速稀疏数组,那也将不胜感激。 最佳答案 我也注意到