Tag: 数组

没有绑定检查的C#byte 比较

我正在寻找性能有效的方法来比较两个字节[]的相等性。 大小超过1 MB,因此应尽量减少每个数组元素的开销。 我的目标是通过避免对两个数组的重复绑定检查来击败SequenceEqual或每个项目上的手动编码for循环的速度。 就像Array.Copy可以导致快速memcpy ,什么会导致memcmp ?

按元素长度排序字符串数组

有一个字符串数组如何更新它,以便它的元素按其长度排序。 我在努力 string[] arr = {“aa”,”ss”,”a”,”abc”}; arr = arr.OrderBy(aux => aux.Length); 所以,我会得到a,aa,ss,abc ,但它说 不能隐式转换类型’system.linq.iorderedenumerable到string []’ 所以,我在做 foreach (string s in arr.OrderBy(str => str.Length)) { // } 还有其他办法吗?

在C#中展平Ruby方法

如何在C#中使用Ruby方法“展平”Ruby方法 。 该方法将锯齿状arrays展平为单维arrays。 例如: s = [ 1, 2, 3 ] #=> [1, 2, 3] t = [ 4, 5, 6, [7, 8] ] #=> [4, 5, 6, [7, 8]] a = [ s, t, 9, 10 ] #=> [[1, 2, 3], [4, 5, 6, [7, 8]], 9, 10] a.flatten #=> [1, 2, 3, 4, […]

如何使用C#将POST数据作为数组

我正在使用C#开发一个ASP.NET处理程序,它接收从外部Flash程序发布的数据数组。 如何将数据用作数组? 似乎ASP.NET中使用的HTTP上下文自动对发布数据进行html解码,使其成为一个简单的字符串。 在这种情况下,分隔符是逗号(可能它总是一个逗号,以前从未使用过它)。 似乎我需要两件事: 1)以html编码forms获取数据的方法,其中用作数组分隔符的逗号只能表示真实数组而不是客户表单输入(客户输入逗号此时将保持编码状态)。 2)一种模拟PHP print_r() , var_dump()函数的方法(我自己不知道PHP,但我知道那里有诀窍)将变量转储到数组中。 因此,任何有关如何做任何事情的帮助将不胜感激。 提前致谢! 编辑1:发布的数据可以是例如一堆地址,邮政编码和可选的额外信息。 例如address=testroad%5F5,another%5Ftestroad%5F6&postalcode=12345,56789&extrainfo=,firstwasempty 。 在该示例中,有两个地址( %5F等于空格),两个邮政编码,但只有第二个地址包含extrainfo作为逗号为空之前的空格。 再一次,由于英语不是我的母语,问题是可能的客户编写的逗号在解码后与实际的数组拆分逗号混合在一起。

C#增量数组

如果我想生成一个从1到6并以.01递增的数组,那么最有效的方法是什么? 我想要的是一个数组,mins和maxs可能会在以后更改……像这样: x[1,1.01,1.02,1.03…]

创建一个只指向另一个数组的一部分的数组?

我有一个包含引用类型元素的巨大数组,我想创建许多其他数组,这些数组基本上只指向那个大数组的特定部分。 换句话说,我想创建“索引器”或“长度指针”。 在C ++中,使用指针很容易,并为每个指针分配一个长度,例如创建一个包含长度指针的结构。 我怎样才能在C#/ .NET中实现这一目标? 重点是避免复制任何东西,我只想指向已经存在于内存中的数组中的特定部分。 有任何想法吗?

C#,旋转2D数组

我看过关于旋转2Darrays的其他文章,但它并不是我想要的。 我想要这样的东西 int[,] original= new int[4,2] { {1,2}, {5,6}, {9,10}, {13,14} }; 我想把它变成这样,rotateArray = {{1,5,9,13},{2,6,10,14}}; 我希望按列进行一些分析,而不是按行进行分析。 这有效,但有更简单的方法吗? private static int[,] RotateArray(int[,] myArray) { int org_rows = myArray.GetLength(0); int org_cols = myArray.GetLength(1); int[,] myRotate = new int[org_cols, org_rows]; for (int i = 0; i < org_rows; i++) { for(int j = 0; j < org_cols; j++) […]

C#等效的PHP http_build_query

我需要使用HttpWebRequest从我的C#客户端将一些数据传递到服务器上的PHP页面。 根据文档的预期数据是一个数组数组,如下所示: $postData = array( ‘label1’ => ‘myLabel’, ‘label2’ => array( ‘label2_1’ => 3 ‘label2_2’ => array( ‘label2_2_1’ => 3 ) ) ); 上面的结构只是一个例子。 它可能非常复杂,结构本身也不是一成不变的。 在PHP中有一个名为http_build_query的函数,它将这些PHP嵌套数组序列化为一个简单的字符串,该字符串可以作为HTTP POST请求的数据发送。 问题是我需要从我的C#应用​​程序调用这个PHP页面。 我想将这些嵌套数组表示为嵌套的Dictionary或匿名类型。 我怎样才能做到这一点? http_build_query遵循什么规则来生成其输出字符串? 有一个非常类似的问题将PHP数组转换为C# ,遗憾的是这并没有解决我的问题。 接受的答案建议采用固定结构的解决方案,第二种方法根本不起作用。

连续的内存存储误解在.NET?

http://msdn.microsoft.com/en-us/library/ms379570(v=vs.80).aspx 我知道.net中的Arrays是以连续的方式存储的。 (在mem中) 我也知道List不是。 (好吧……不是所有列表类型……请参阅我的第2个问题) 从这里我有2个问题 我知道在4,8,16 …插入项目到列表后 – 该列表在内存中reallocate自己。 我也知道我可以向他发送Capacity ,以便让他知道我将创建他的大小(以减少重新分配)。 问题是为什么 ? 他不会连续存放自己,为什么他关心重新分配自己呢? (他不必找到免费和连续的存储单元) 为什么带有结构的List是否在连续内存中分配,与类列表不同?

如何在应用程序设置中存储int 数组

我正在使用C#express 2008创建一个简单的Windows窗体应用程序。我是一位经验丰富的C ++开发人员,但我对C#和.NET几乎全新。 我目前正在使用设置设计器和代码存储我的一些简单应用程序设置,如下所示: // Store setting Properties.Settings.Default.TargetLocation = txtLocation.Text; … // Restore setting txtLocation.Text = Properties.Settings.Default.TargetLocation; 现在我想存储一个int数组( int[] ),或者可能存储一个int List ( List )作为设置。 但是,我无法弄清楚如何做到这一点。 我搜索了文档,stackoverflow和谷歌,我找不到如何做到这一点的体面解释。 基于我发现的稀疏示例,我的预感是我必须创建一个可序列化的类来包装我的数组或List,然后我将能够在设置设计器中使用该类型。 但是,我不确定如何做到这一点。