希望这不是重复,因为我做了搜索,什么都没发现.
乍一看,我认为他们会表现得相似,但没有.一个是字符串的二维数组,另一个是字符串数组的数组,即从(List <string []>)obj.ToArray()返回的内容.
我知道如何使用(List <string []>)obj.ToArray()返回锯齿状数组类型.
如何使用类似的概念返回2d数组,即从其他数据构建集合对象并调用ToArray或其他将返回2d数组的方法.
谢谢
下面列出的代码是为了帮助我在C#中找到二维数组的行和列大小,但在访问列长度时(GetLength(1)),我最终会得到一个IndexOutOfRangeException.我的查找类似于q-a,但无法确定列大小.
List<List<int>> intLists = new List<List<int>>();
for (int i = 0; i < 2; i++)
{
List<int> tempList = new List<int>();
for (int j = 0; j < 5; j++)
tempList.Add(j + 5+i);
intLists.Add(tempList);
}
int[][] intArray = intLists.Select(Enumerable.ToArray).ToArray();
Console.WriteLine("Dimension 0 Length = " + intArray[0].Length);
Console.WriteLine("Dimension 1 Length = " + intArray[1].Length);
Console.WriteLine("Dimension 0 Length = " + intArray.GetLength(0));
//Console.WriteLine("Dimension 1 Length = " + intArray.GetLength(1));
Run Code Online (Sandbox Code Playgroud) 所以在C#中你可以像这样定义一个数组:
string[] Demo;
string[,] Demo;
string[,,] Demo;
Run Code Online (Sandbox Code Playgroud)
什么是,代表?
这段代码的IL代码(用https://dotnetfiddle.net生成):
public class Program
{
public static void Main()
{
int i = 10;
if (i < 4)
Console.WriteLine("Hello World");
}
}
Run Code Online (Sandbox Code Playgroud)
包含ldstr"Hello World".
编译器不应该知道Console.WriteLine永远不会被执行吗?
这个IL代码:
public class Program
{
public static void Main()
{
if (10 < 4)
Console.WriteLine("Hello World");
}
}
Run Code Online (Sandbox Code Playgroud)
不包含ldstr命令.
现在我很困惑.. .NET编译器真的很蠢吗?两个示例的C#/ IL代码完全相同:没有.但是第一个例子的IL代码比另一个大.不应该是一个好的编译器只是调用构造函数而什么都不做..?
编辑:
是的我已经读过这个,但我不是在谈论其他生成的本地人.
如果i是属性或公共变量,则可以从另一个线程修改它.但i只存在于Main()......
我想用c#做一个数独.我应该使用锯齿状或多维数组.为什么?
我知道,对于简单的数组逻辑,例如数独,锯齿状数组更快更有效.但也许还有其他争论?
提前致谢.
编辑:我需要在数独上执行一些解决方法.像回溯算法一样.我发现多维数组有更好的语法.
我想我的问题是:哪个最简单易用,实现和修改?
所以我有一个问题,但我不知道为什么.
public static int Suurin(int[,] luku)
{
int max = luku[0, 0];
for (int i = 0; i < luku.Length; i++)
{
for (int j = 0; j < luku.Length; i++)
{
if (max < luku[i, j]) // ERROR LINE
max = luku[i, j];
}
Run Code Online (Sandbox Code Playgroud)
所以我只是不知道如何解决这个问题,任何人都可以帮助我吗?
问题在标题中。
逗号作为 C# 中数组的长度是什么意思?
怎么叫的,网上怎么找的?
我在谷歌搜索了“如何在 C# 中初始化数组”,但没有关于这个逗号的信息。如果我删除逗号 VS 会显示错误:“数组初始值设定项只能在变量中使用”。即使将其分配给变量后,它仍然显示错误。
EntityFramework 生成以下代码:
migrationBuilder.InsertData(
table: "Test",
columns: new[] { "Name" },
values: new object[,]
{
{ "Test" },
{ "Test1" }
});
Run Code Online (Sandbox Code Playgroud) 我试图将数据从对象列表导出到csv文件.我设法创建文件并创建第一行,但是我需要为每个循环创建一些循环来遍历每个对象.
这是我的代码:
string pathDesktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
string filePath = pathDesktop + "\\mycsvfile.csv";
if (!File.Exists(filePath))
{
File.Create(filePath).Close();
}
string delimter = ",";
string[][] output = new string[][] {
new string[] {"TEST1","TEST2"}
};
int length = output.GetLength(0);
StringBuilder sb = new StringBuilder();
for (int index = 0; index < length; index++)
{
sb.AppendLine(string.Join(delimter, output[index]));
File.AppendAllText(filePath, sb.ToString());
}
Run Code Online (Sandbox Code Playgroud)
有没有办法创建此文件并使用循环遍历所有对象并将其显示在文件中.
I'm trying to declare this kind of variable:
float[][]
Run Code Online (Sandbox Code Playgroud)
Things that didn't work for me (wouldn't compile) -
float[][] inputs = new float[10][5];
float[][] inputs = new float[10,5];
Run Code Online (Sandbox Code Playgroud)
When trying to declare the array like this -
int a = 3;
int b = 2;
float[][] inputs = new float[][]
{
new float[a],
new float[b]
};
Run Code Online (Sandbox Code Playgroud)
I get a multidimensional array with two float arrays instead of an array that has 3 arrays and every array size is 2.