【C vs C# – 数组】教程文章相关的互联网学习教程文章

使用C#从IntPtr复制字节数组与Marshal.Copy不起作用【代码】

我正在使用一个非托管库,它可以生成灰度图像(大约100200像素,或多或少).图像包含在结构中,在C中如下所示:typedef struct abs_image {ABS_DWORD Width;ABS_DWORD Height;ABS_DWORD ColorCount;ABS_DWORD HorizontalDPI;ABS_DWORD VerticalDPI;ABS_BYTE ImageData[ABS_VARLEN]; } ABS_IMAGEtypedef unsigned int ABS_DWORD; typedef unsigned char ABS_BYTE;在这里我的C#包装器结构:[StructLayout(LayoutKind.Sequential, ...

如何在c#中将结构转换为字节数组【代码】

我在c#中有一个带有两个成员的结构:public int commandID; public string MsgData; 我需要将它们转换为单个字节数组,然后将其发送到将解包字节的C程序,它将获取第一个`sizeof(int)字节以获取commandID,然后其余的MsgData将被使用. 在c#中执行此操作的好方法是什么?解决方法:以下将返回一个常规字节数组,前四个表示命令ID,其余表示消息数据,ASCII编码和零终止.static byte[] GetCommandBytes(Command c) {var command = BitCon...

c# – Bitmap的ColorPalette具有条目长度为0的数组【代码】

我正在尝试将Bitmap转换为Icon并需要设置Bitmap的调色板(参见GetHicon from a 16 COLOR bitmap returns an image with less colors).为此,我试图遵循this answer:但我看到调色板是空的,我不能创建一个新的数组因为我必须改变原来的数组. (我甚至尝试过它.它不起作用.) 我有:ColorPalette palette = bitmap.Palette; Color[] entries = palette.Entries;但条目的长度为零. 那么我该如何更改ColorPalette呢?解决方法:如上所述,位图...

c# – 跨平台RESTful WCF方法,传递和返回字节数组【代码】

理论上这么简单,但我从来都不是WCF配置的wiz.我想要做的是:我有一个匹配此签名的WCF方法:[OperationContract] [WebInvoke(Method = "POST")] Stream PostPackets(Stream rawPackets);我真正关心的是从Android / iPhone / Blackberry /任何其他类型的设备获取字节数组到我的wcf服务,处理数组然后发送回不同的字节数组.对于我所关心的一切,它可能看起来像:[OperationContract] [WebInvoke(Method = "POST")] byte[] PostPackets(b...

【转载】 C#中使用CopyTo方法将List集合元素拷贝到数组Array中【代码】

在C#的List集合操作中,有时候需要将List元素对象拷贝存放到对应的数组Array中,此时就可以使用到List集合的CopyTo方法来实现,CopyTo方法是List集合的扩展方法,共有3个重载方法签名,分别为void CopyTo(T[] array)、void CopyTo(T[] array, int arrayIndex)、void CopyTo(int index, T[] array, int arrayIndex, int count)等三种形式,此文重点介绍CopyTo的第一种方法签名形式void CopyTo(T[] array)。 首先定义个用于测试的类T...

c# – 数组中的不同类型,如何在将它们从数组中取出时知道将它们转换为什么?【代码】

假设类型为Packet的通用List,包含扩展Packet的自定义类,例如LoginPacket或ChatPacket. 假设我将这些放在列表中.当我拿出它们时,每个最“特定”的类型是Packet.我想将它们转换为更具体的类型,然后返回原始的LoginPacket或ChatPacket,或者返回原始类型. 问题:我该怎么办? 参考:How to cast an object programmatically at runtime? 所以…似乎这些自定义类共享一个通用接口,它会解决转换问题吗?但如果是这样,我的类不能共享一个接...

解析字节数组时抛出什么异常? (C#)【代码】

我正在解析一个字节数组,这实际上是一个在消息总线上发送的修复长度记录.如果数据无效(乱码或不符合记录规范),那么我想抛出异常.像这样的东西:public DomainObject ParseTheMessage(byte[] payload){Validate(payload);//throws an exception if invalid...do creation of domain object }有没有人知道我是否可以在这些情况下抛出一个很好的标准异常,或者我应该创建自己的特定异常?解决方法:你可以使用ArgumentException:throw ...

c# – 使用键值数组访问字典【代码】

我有一个字典,其中包含一个数组,定义为:Dictionary<string, string[]> wordDictionary = new Dictionary<string, string[]>();有没有一种方法可以在没有foreach迭代的情况下访问字典中的特定值.解决方法:试试这个:var t = wordDictionary ["myKey"][myArrIndex]例如,这将为您提供整个数组:var t = wordDictionary ["myKey"]虽然这将为您提供位置5的数组中的值:var t = wordDictionary ["myKey"][5]

c# – 在没有语言语法的情况下实例化新数组[]【代码】

在C#中,可以使用特殊的方括号语法new int [3]实例化一个数组.这与通过调用构造函数new List< int>()实例化的其他类型不同.你能用普通的语法创建一个数组吗? 我尝试了新的System.Array< int>(3),但它爆炸了The non-generic type ‘System.Array’ cannot be used with type arguments解决方法:System.Array本身是抽象的,因此您将无法使用其构造函数对其进行实例化.正如你的错误所证明的那样,它实际上也不是通用的;它只通过implemen...

选择前5个字符,在C#中的字符串数组中【代码】

我想从字符串数组列表中选择前5个字符,List<string> strDetailIDList = new List<string>(); foreach(DataRow row in ds.Tables[0].Rows) {strDetailIDList.Add(row.ToString()); } str=strDetailIDList.ToArray();现在str包含列表之类的FOCMM001 FOCMM002 FOCMM003 FOCMM004 FOCMM005 FOCMM006 FOCSM013 FOCSM014 FOCSM015 FOCSM016 FOCSM017 FOCSM018 FOCSM019 SC1LN001 SC1LN002 SC1LN003 SC1LN004 SC1LN005 SC1L...

c# – 将特殊字符放入Byte数组中【代码】

我现在正在加密algotythm,我还需要加密德语单词.所以我必须加密例如:,或等字符. 在里面我有一个功能:private static byte[] getBytesArray(string data) {byte[] array;System.Text.ASCIIEncoding asciiEncoding = new System.Text.ASCIIEncoding();array = asciiEncoding.GetBytes(data); return array; }但是当数据为“”时,数组中返回的字节为63(所以“?”).我怎么能返回字节? 我也尝试过:private static byte[...

c# – 将2个连续字节的数组更快地转换为整数【代码】

我有一个“巨大”的数据,可能在50到100兆字节之间变化.我使用filestreamer将这些数据作为字节数组读取. 问题是,我想将所有连续的2个字节转换为整数.我这样做的方法是循环遍历字节数组,步长为2,然后使用BitConvert进行转换:_data[i] = BitConverter.ToInt16(soundData[i : i + 2], 0) // Convert 2 bytes into an int and store at i所以每两个字节变成一个Int16.然而问题是,这太慢了,对于大约50兆字节的文件,这可能需要20秒! 有没...

使用json.NET和C#解析JSON数组【代码】

我有一些我需要解析的以下JSON格式的数据:{ "status":0, "timestamp":"8:20pm", "routes":[{"directions":["E Towne","ETP"],"routeID":"30"},{"directions":["Johnson","Observatory"],"routeID":"81"} ] }使用json.net,我想得到以下输出:30 E Towne – ETP 81 Johnson – Observatory使用下面的代码,我得到以下不正确的输出:30 E Towne – ETP 81 E Towne – ETP如何将方向数组项写入相应的routeID项?我的代码:public class...

c# – 如何覆盖[]数组中的ToString()?【代码】

比如说,如果我需要在自定义List中覆盖ToString方法,我会这样做:public class WebUILanguage2 : List<WebUILanguage> {public override string ToString(){return "Overridden message";} }但如果我想覆盖这个怎么办?public class WebUILanguage2 : WebUILanguage[]解决方法:你不能.您无法从数组类型派生. 我通常建议不要在List< T>中覆盖ToString – 根据我的经验,通常最好使用组合而不是继承这样的事情.

使用c#访问2d数组时出错【代码】

我是Unity3D和c#的新手.我正在修补在2d阵列中存储一些网格位置但是我遇到了 数组索引超出范围 错误,我不知道为什么:public int[,] myArray; myArray = new int[,]{{0,375},{75,300},{150,225},{225,150},{300,75},{375,0}};Debug.Log(myArray[1,4]); // array index is out of range... why? I expected to get 75.以下是我正在寻求帮助的其他一些资源:http://wiki.unity3d.com/index.php/Choosing_the_right_collection_type ht...