我有一个二维数组,我需要将其转换为List(相同的对象).我不想使用for或foreach循环来获取每个元素并将其添加到List.还有其他方法吗?
考虑以下数组:
int[,] numbers = new int[3, 2] { { 2, 1 }, { 3, 4 }, { 6, 5 } };
我想使用LINQ来构造一个数字为2,1,3,4,6,5的IEnumerable.
最好的方法是什么?
你如何使用LINQ获得二维数组的最小值和最大值?要清楚,我的意思是数组中所有项目的最小值/最大值(不是特定维度的最小值/最大值).
或者我只是要以老式的方式循环?
有没有一种优雅的方法来在C#中展平2D数组(使用Linq与否)?
比如假设
var my2dArray = new int[][] {
new int[] {1,2,3},
new int[] {4,5,6}
};
Run Code Online (Sandbox Code Playgroud)
我想打电话
my2dArray.flatten()
Run Code Online (Sandbox Code Playgroud)
会产生的
{1,2,3,4,5,6}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
是的,我确实知道锯齿状数组[] []和多维数组[,]之间的区别.
是的,我找了重复,发现了这些:
其中最后一个包含完成工作的功能.但我的问题仍然是:是否有任何方法(无论多么扭曲或设计)说服LINQ以多维数组(而不是锯齿状数组)的形式构造和返回结果?
这与问题并不真正相关,但是这里导致的问题之一是看起来像是"为LINQ制作"的小工作之一,除了我需要调用的函数已经用多维数组参数定义.作为锯齿状数组产生答案的LINQ代码花了大约5分钟来编写,然后是什么?我错过了什么,或者LINQ 真的没办法完成这项工作吗?
我想我应该说:除了编写一大块代码以旧的方式执行它并将其作为lambda嵌入或将其称为扩展方法.现在它看起来好像LINQ既不能生成也不消耗多维数组,我的问题的答案是否定的.
是否可以将新的System.Memory Span结构与二维数据数组一起使用?
double[,] testMulti =
{
{ 1, 2, 3, 4 },
{ 5, 6, 7, 8 },
{ 9, 9.5f, 10, 11 },
{ 12, 13, 14.3f, 15 }
};
double[] testArray = { 1, 2, 3, 4 };
string testString = "Hellow world";
testMulti.AsSpan(); // Compile error
testArray.AsSpan();
testString.AsSpan();
Run Code Online (Sandbox Code Playgroud)
尽管testArray和testString具有AsSpan扩展名,但testMulti不存在此类扩展名。
Span的设计是否仅限于处理一维数据数组?
我还没有找到使用Span处理testMulti数组的明显方法。
我有一个数组,我想将其保存到 PlayerPrefs。我听说,我可以这样做:
PlayerPrefs.SetStringArray('title', anArray);
Run Code Online (Sandbox Code Playgroud)
但由于某种原因它不起作用。也许我没有使用像这样的库using UnityEngine.PlayerPrefs;?
有人能帮我吗?
提前致谢