Tag: 数组

向后复制一个数组? Array.Copy?

我有一个List ,我希望能够向后复制到一个数组,这意味着从List.Count开始,并从列表末尾开始复制可能有5个项目并向后工作。 我可以用一个简单的反向循环来做到这一点; 然而,这可能是一种更快/更有效的方式,所以我想我应该问。 我Array.Copy以某种方式使用Array.Copy吗? 最初我使用的是Queue ,因为它按照我需要的正确顺序弹出它,但我现在需要一次弹出多个项目到一个数组中,我认为列表会更快。

c逐行将文本文件读入数组并打印出来

我有以下c#代码片段 string[] lines = File.ReadAllLines(@”C:\test.txt”); for(int i=0; i<lines.Length; i++) Console.WriteLine(lines[i]); 你能帮我把它转换成C. 谢谢!

C#数组最大值

我在C#中有两个名为Arr1和Arr2数组。 它们的尺寸完全相同…… 我需要从给定索引开始,获取Arr1的元素,该元素对应于Arr2中的最大元素… 例如 获得所有i , j的最大值Arr2 [ 1 , 10 , 3 , i , j ]索引 返回Arr1 [ 1 , 10 , 3 , i , j ] 当然我需要优雅的解决方案(而不是“循环为他们”一个…) 请注意: 我不想循环遍历数组,因为它是11维!!代码将是丑陋和容易出错.. 我可能会用尽变量名:) 编辑: 通常的解决方案是: for(int i=0;i<10;i++) for(int j=0;j<10;j++) if(Arr2[1,10,3,maxi,maxj]<Arr2[1,10,3,i,j]) { maxi=i maxj=j } return Arr1[1,10,3,maxi,maxj]; 但我需要在更少和更漂亮的代码中做到这一点..可能正在使用querys或linq ..

共享属性和方法之间的角色属性的初始化

我有一个权限属性,它获取角色的枚举值列表: [CheckRoles(SystemRole.ID.Admin, SystemRole.ID.User)] public class MyController : Controller { …. } 但是,在代码的其他部分,我想检查用户是否处于任何这些角色,因此我可以转到正确的页面。 所以代码看起来像: if (roles.IsInAnyRoles(user, SystemRole.ID.Admin, SystemRole.ID.User) { … Do something in MyController … } 你可以在这里看到重复。 我真的希望在变量或初始化列表中有两个角色,或者我可以传递给属性和方法。 创建const数组不起作用。 有办法做到这一点吗? 我可以以某种方式存储arrays初始化器吗? 任何帮助将不胜感激! UPDATE 我已经将角色枚举成了一个Flags枚举(并给出了适当值的项)。 这意味着我可以将值或值一起给出单个恒定值。 我现在可以在Attribute和方法中使用该常量值。 感谢下面的Danny Chen。

为什么编译器无法推断出对象数组类型?

我想知道为什么这是有效的: object[] array = {“bla bla bla..”, 23, true}; 但这些不是: var array = {“bla bla bla..”, 23, true }; var array2 = new [] {“bla bla bla..”, 23, true }; 在第二个例子中,为什么编译器不能根据数组初始值设定项中的值推断出数组类型? 这似乎很容易,特别是与generics类型推断相比。为了定义一个对象数组,为什么我必须明确指定数组类型? var array = new object[] { “bla bla bla..”, 23, true };

如何将数组中的所有值相乘?

我有一个任务,我需要找到数组中所有数字的乘积,我不知道如何做到这一点。 int[] numbers = new int[SIZE]; Console.WriteLine(“Type in 10 numbers”); Console.WriteLine(“To stop, type in 0”); for (int input = 0; input < SIZE; input++) { userInput = Console.ReadLine(); numberInputed = int.Parse(userInput); if (numberInputed == ZERO) { numberInputed = ONE; break; } else { numbers[input] = numberInputed; } } 这是我试图找到数组中所有数字的乘积的地方。 foreach (int value in numbers) { […]

arrays的反序列化不支持Type

我正在尝试对数组进行解法,但我一直遇到错误。 JavaScriptSerializer jsonSerializer = new JavaScriptSerializer(); Profiles thingy = jsonSerializer.Deserialize(fileContents); 这是给我错误的代码: Type is not supported for deserialization of an array. 这就是我的JSON看起来的样子: [ { “Number”: 123, “Name”: “ABC”, “ID”: 123, “Address”: “ABC” } ]

运算符不能应用于’Method Group’和’int’类型的操作数

我正在尝试获取此字符串数组中的元素数量,但它不会让我从Count取出1。 string [] Quantitys = Program.RecieptList[i].ItemQuantitys.Split(new char[] {‘*’}); for (int ii = 0; i <= Quantitys.Count – 1; ii++) { } 我收到一条错误消息说明 运算符’ – ‘不能应用于’Method Group’和’Int’类型的操作数。 什么是正确的方法呢?

何时使用包含引用类型的值类型的数组而不是引用类型的数组?

假设我有以下内容: public class MyElement { } [Serializable] [StructLayout(LayoutKind.Sequential)] struct ArrayElement { internal MyElement Element; } public class MyClass { internal MyElement ComputeElement(int index) { // This method does a lengthy computation. // The actual return value is not so simple. return new MyElement(); } internal MyElement GetChild(ref MyElement element, int index) { if (element != […]

使用负数组大小抛出OverflowException背后的基本原理?

编写完可以归结为以下内容的代码后: var size=-1; var arr=new byte[size]; 我很惊讶它抛出了一个OverflowException 。 OverflowException状态的文档: 在已检查上下文中的算术,转换或转换操作导致溢出时引发的exception。 我无法看到为这个exception提供的描述如何提供负的大小和数组长度,所以深入研究并发现这确实是指定的行为: 尺寸长度的计算值validation如下。 如果一个或多个值小于零,则抛出System.OverflowException,并且不执行进一步的步骤。 我想知道为什么选择了OverflowException。 如果你问我,那就太误导了。 我花了至少5分钟的调查时间(不计算我的思考)。 任何人都可以(根据我的想法)对这个特殊的设计决定有所了解吗?