草庐IT

byte转String

全部标签

c# - 为什么 string.IsNullOrEmpty 比比较快?

这个问题在这里已经有了答案:WhyisString.IsNullOrEmptyfasterthanString.Length?(7个答案)关闭9年前。出于性能原因,MSAnalyzer建议使用string.IsNullOrEmpty而不是将其与null或空字符串进行比较警告470CA1820:Microsoft.Performance:将...中的“string.operator==(string,string)”调用替换为对“String.IsNullOrEmpty”的调用。这是为什么呢?调用另一个函数并将其传递给某个对象的引用(无论如何都需要执行某种比较)的要求难道不应该比执行比较

c# - "if (object is (string, Color))"c# 7.0 元组用法不起作用

我使用的是VisualStudio2017RC,我已经安装了System.ValueTuple包,它启用了新的c#7.0元组用法,但我无法让它在这种特定情况下工作:如您所见,第一种方法没有任何红色波浪线,而且很管用。但是尝试执行ois(string,Color)失败并出现不相关的错误:新的元组不能这样用吗?或者它只是包裹的当前状态?我已经将它更新到最新版本btw,此时是4.3.0。我读过thisMSDNpost但没有发现任何这样的用法。 最佳答案 Roslyncontainsteststhatensureusingtuplesinp

c# - string str 和 string str=null 的区别

我想知道当我们声明一个变量时内部到底发生了什么,就像这样:stringtr;stringtr=null;在调试时,我注意到这两个值都只显示空值。但是当使用reftr而不初始化null时,它会给出错误,而第二行不会。请帮助我深入了解它 最佳答案 你的第一条语句只是声明,你的第二条语句是声明+初始化。stringtr;//JustDeclarationstringtr=null;//Declaration+Initialization.如果您尝试仅在声明中使用tr,您可能会遇到编译时错误。(第一种情况)例如:stringtr;//Jus

C# - 将不安全的 byte* 转换为 byte[]

我有一个unsafebyte*指向已知长度的native字节数组。如何将其转换为byte[]?指向零终止native字符串的unsafesbyte*可以很容易地转换为C#string,因为有一个conversionconstructor为此目的,但我找不到将byte*转换为byte[]的简单方法。 最佳答案 如果ptr是您的不安全指针,并且数组的长度为len,您可以像这样使用Marshal.Copy:byte[]arr=newbyte[len];Marshal.Copy((IntPtr)ptr,arr,0,len);但我确实想知道您

c# - 使用数组作为 string.Format() 的参数

当尝试使用数组作为string.Format()方法的参数时,出现以下错误:FormatException:Index(zerobased)mustbegreaterthanorequaltozeroandlessthanthesizeoftheargumentlist.代码如下:place=newint[]{1,2,3,4};infoText.text=string.Format("Player1:{0}\nPlayer2:{1}\nPlayer3:{2}\nPlayer4:{3}",place);数组包含四个值,String.Format()中的参数也相同。是什么导致了这个错误?(

C#.NET : Convert Icon to byte[] and back again

如何在System.Drawing.Icon类型和byte[]之间进行转换?我正在寻找可以(希望)在.NET2中工作的简单方法。 最佳答案 你通过MemoryStream,基本上:publicstaticbyte[]IconToBytes(Iconicon){using(MemoryStreamms=newMemoryStream()){icon.Save(ms);returnms.ToArray();}}publicstaticIconBytesToIcon(byte[]bytes){using(MemoryStreamms=ne

c# - 为什么 new String ("Hello") 在 C# 中无效?

制作背后的逻辑/原因是什么Strings=newString("HelloWorld");在C#中非法?错误是Thebestoverloadedmethodmatchfor`string.String(char*)'hassomeinvalidarguments我对API文档不感兴趣,我感兴趣的是为什么这是非法的。是因为池静态字符串?像Java将Integer(-128)池化为Integer(127)并产生可怕的结果?(当然还有字符串) 最佳答案 使用构造函数基于另一个现有字符串创建新字符串是毫无意义的-这就是为什么没有构造函数重载

c# - Linq/Lambda OrderBy Delegate for List<string> of IP Addresses

给定Listips=newList();我需要按逻辑顺序对IP地址列表进行排序(即“192.168.0.2”出现在“192.168.0.100”之前)。当前(并且正确地,按字母顺序排列)如果列表包含:192.168.0.1192.168.0.2192.168.0.10192.168.0.200ips.OrderBy(p=>p)返回:192.168.0.1192.168.0.10192.168.0.2192.168.0.200 最佳答案 你需要做一个比较器:(已测试)classIPComparer:IComparer{publicin

c# - 如何将 ListItemCollection (dropdownlist.items) 转换为字典<string,string>?

如何转换ListItemCollection(DropDownList.items)到Dictionary(我知道它可以通过每个循环来完成)还有其他方法linq吗? 最佳答案 您可以使用LINQ:collection.Cast().ToDictionary(i=>i.Value,i=>i.Text);无法立即知道项目的类型,因此无法立即知道cast方法(至少intellisense没有为我提出来)。但是ToDictionary()应该可以让您到达那里,并指定您想要的任何内容作为键和值。HTH.

c# - 从 SqlDataReader 获取 byte[]?

我有一个带有varbinary(MAX)参数的表。执行查询后,我会将结果存储在SqlDataReader中,因为它有多个列作为输出。SqlCommandcmd=newSqlCommand("selectleave_detailsfromLeaveTable");SqlDataReaderobj;con.Open();obj=cmd.ExecuteReader();现在我想将每一行的结果转换为byte[]。这个不行::byte[]b=null;obj.GetBytes(0,0,b,0,1024); 最佳答案 试试GetValue()方