Tag: 数组

快速有效地将空格分隔的数字文件读入数组?

我需要一种快速有效的方法来将带有数字的空格分隔文件读入数组。 文件格式如下: 4 6 1 2 3 4 5 6 2 5 4 3 21111 101 3 5 6234 1 2 3 4 2 33434 4 5 6 第一行是数组[行列]的维度。 以下行包含数组数据。 数据也可以格式化,没有任何新行,如下所示: 4 6 1 2 3 4 5 6 2 5 4 3 21111 101 3 5 6234 1 2 3 4 2 33434 4 […]

获取维度长度,c#数组

int[,] arr = new int[2,5]; var rows = arr.? var cols = arr.? Assert.Equals(3, rows); Assert.Equals(6, cols);

数组comprasion作为C#中的Dictionary键

我想创建表示n维数组的类,但是在哪里是对其元素的可交换访问。 例如: a[new[] {4, 7, 55}] == a[new[] {55, 4, 7}] 我编写这段代码,我实现接口IEqualityComparer,以便比较键(它们是数组)的真实内容,但不是refs。 using System; using System.Collections.Generic; using System.Linq; class NArray { public int this[int[] x] { get { Array.Sort(x); return array[x]; } set { Array.Sort(x); array[x] = value; } } public void Remove(int[] x) { Array.Sort(x); array.Remove(x); } Dictionary array = new Dictionary(new ArrCmpr()); } […]

如何将Int数组或指针编组为Int数组

(我知道这可能是重复但我不理解其他线程) 我正在使用C#,我有一个第三方dll需要int数组(或指向int数组的指针)作为参数。 如何在C#和C / C ++之间编组int数组? 函数声明如下: // reads/writes int values from/into the array __declspec(dllimport) void __stdcall ReadStuff(int id, int* buffer); 在C int*会是一个指针吗? 所以我很困惑,如果我必须使用IntPtr或如果我可以使用int[] (首选)? 我认为这可能没问题: [DllImport(dllName)] static extern void ReadStuff(int id, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_I4)] ref int[] buffer); // call int[] array = new int[12]; ReadStuff(1, ref array); 那会有用吗? 或者我如何在安全代码中用C#声明这个函数?

C#最后用一个元素增加一个数组

在我的程序中,我有一堆增长的数组,其中一个新元素逐个生长到数组的末尾。 我认为列表是我程序关键部分的速度瓶颈,因为与arrays相比,它们的访问时间较慢 – 切换到arrays可将性能提升到可接受的水平。 所以为了增长数组我正在使用Array.Resize。 这很好用,因为我的实现将数组大小限制为大约20个元素,因此Array.Resize的O(N)性能是有限的。 但是如果有一种方法可以在最后用一个元素增加数组而不必使用Array.Resize那就更好了。 我相信它会将旧数组的副本复制到新大小的数组中。 所以我的问题是,是否有更有效的方法在不使用List或Array.Resize的情况下将一个元素添加到数组的末尾?

在方法调用中初始化字符串数组作为C#中的参数

如果我有这样的方法: public void DoSomething(int Count, string[] Lines) { //Do stuff here… } 为什么我不能这样称呼它? DoSomething(10, {“One”, “Two”, “Three”}); 什么是正确的(但希望不是很长的路)?

在性能方面有什么好处? 键入或类型 ?

在C#中使用二维数组( type[,] )或数组数组( type[][] )是否更高效? 特别是对于初始分配和项目访问

为什么System.Array不能成为类型约束?

我正在开发一个带有几种不同类型数组的小项目(例如double[] , float[] , int[] 。为了validation/测试/健全,我将其中一些数组打印到控制台我继续。所以我有多个函数,如下所示(本例简化 – 假设我只处理单维数组): void Print(float[] a) // prints an array of floats { for (int i = 0; i < a.Length; i++) { Console.Write(a[i]); } } void Print(double[] a) // prints an array of doubles { for (int i = 0; i < a.Length; i++) { Console.Write(a[i]); } } 我以我的无限智慧认为,我可以通过简单地创建这些函数的通用版本来减少一些代码重复。 […]

如何在每次点击按钮的情况下一次返回一个项目?

我有一个数组,我在表单加载上面声明: protected string[] Colors = new string [3] {“red”, “green”, “orange”}; 当我单击此提交时,我想使用Response.Write(); 第一次点击时打印出red ,第二次点击时打印为green ,最后一次点击它时最后是orange 。 我正在阅读如何点击每个按钮获取数组中的下一项? 而且这个用户正在尝试与我想要的东西非常相似的东西,但是在这种情况下它看起来好像是动态的。

如何从用户定义类列表中删除元素?

我是c#的新手,请对我温柔,我一直在网上搜索几个小时没有成功,我想从用户定义的类中删除一个元素。 我该怎么做? 下面是代码的片段。 public class Level2 { public double price { get; set; } public long volume { get; set; } public Level2(double price, long volume) { this.price = price; this.volume = volume; } } static void Main() { List bid = new List(); ask.Add(new Level2(200, 500)); ask.Add(new Level2(300, 400)); ask.Add(new Level2(300, 600)); // how […]