- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
是的,我确实知道交错数组 [][] 和多维数组 [,] 之间的区别。
是的,我查找了重复项并找到了这些:
其中最后一个包含完成这项工作的功能。但我的问题仍然是:是否有任何方法(无论多么扭曲或做作)说服 LINQ 以多维数组的形式构造和返回结果(不是锯齿状数组)?
它与问题并没有真正相关,但导致这里的问题是那些看起来像是“为 LINQ 制作”的小工作之一,只是我需要调用的函数是用多维数组参数定义的.将答案生成为锯齿状数组的 LINQ 代码编写了大约 5 分钟,然后呢?我是否遗漏了什么,或者 LINQ 真的没有办法完成这项工作吗?
我想我应该说:除了编写一大块代码以旧方式执行此操作并将其作为 lambda 嵌入或将其作为扩展方法调用之外。现在看起来 LINQ 既不能生成也不能使用多维数组,我的问题的答案是否定的。
最佳答案
嗯..好吧..确定吗?这是一个示例,如果可能,如何将整数列表转换为二维数组。
void Main()
{
var wat = new[]{2, 4, 5, 6, 7, 8}
.Select(x => new { dummy=1, val= x})
.GroupBy(x => x.dummy) // group everything into one, "UNFLATTEN"
.Select(gr =>
{
var elements = gr.Select(x => x.val).ToList();
if(elements.Count == 0 || elements.Count % 2 != 0)
throw new NotSupportedException("I don't know what to do.");
var halfSize = elements.Count / 2;
int[,] ret = new int[2, halfSize];
for(var k = 0; k < halfSize; k++){
ret[0, k] = elements[k];
ret[1, k] = elements[elements.Count - halfSize + k];
}
return ret;
}
).First();
wat.Dump();
}
输出:
_ 0 1 2
0 2 4 5
1 6 7 8
正如其他人所说,您最好创建新的扩展方法:
static class LinqExtensions
{
public static T[,] ToRectangularArray<T>(this IEnumerable<IEnumerable<T>> arrays)
{
// TODO: Validation and special-casing for arrays.Count == 0
// TODO: Rename "arrays"
// TODO: Make sure that Count() is used only once,
// TODO: ElementAt() does not work everywhere, you're better off using ToList() before!
int minorLength = arrays.First().Count();
T[,] ret = new T[arrays.Count(), minorLength];
for (int i = 0; i < arrays.Count(); i++)
{
var array = arrays.ElementAt(i);
if (array.Count() != minorLength)
{
throw new ArgumentException
("All arrays must be the same length");
}
for (int j = 0; j < minorLength; j++)
{
ret[i, j] = array.ElementAt(j);
}
}
return ret;
}
}
void Main()
{
var wat = new[]{new[]{2, 4, 5}, new[]{6, 7, 8}}.ToRectangularArray();
wat.Dump();
}
为了方便起见,您可能希望为 IEnumerable<T>
添加相同的扩展方法。 ,并这样调用它:ToRectangularArray<T>(this IEnumerable<T> input, int dimensions = 2)
关于c# - LINQ可以构造并返回一个多维数组吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26233003/
我的数据库表是: author book repeat ------ ----
众所周知,我们可以简化 SELECT * FROM A WHERE X=1 OR X=4 OR X=9 如下: SELECT * FROM A WHERE X IN (1,4,9) “多维”条件是否有
我在大学时正在编写 Android 应用程序。 用户被询问必须回答的问题。 我通过服务器的 HTTP 请求/响应获取问题。它们以字符串形式传递。该字符串看起来像这样,有两个问题: (requested
我怎样才能在 C++ 中使用 vector 制作这样的表格: 65 A 66 B 67 C 我是用这样的动态二维数组完成的: int** ary = new int*[2]; for (int
运行时: if (data.custaccount.webaddress) { alert('found it'); } 我得到了错误 data.custaccount is undefined
如何按名称对对象数组进行排序。 数组构造数组的例子: object[] o = new object[items.Count+(row-exists)]; int i = 0;
如何创建二维 vector ?我知道在二维数组中,我可以这样表达: a[0][1]=98; a[0][2]=95; a[0][3]=99; a[0][4]=910; a[1][0]=98; a[1][
这是我的第一个问题。 我有很多组数据。它们中的每一个都应该在 DataFrame 中呈现。我试图通过将 DataFrame 作为多维元组的一项来实现这一点,例如: data[0][1].Glucose
有人可以建议改进我对多维 lstm 的实现吗? 它非常慢并且使用大量内存。 class MultiDimentionalLSTMCell(tf.nn.rnn_cell.RNNCell): """ Ad
我已为我在另一个基于 WPF 的应用程序中使用的 Azure 移动服务添加了到 MVC 站点的连接。 我不太熟悉如何通过移动服务在 MVC 中显示数据,找不到任何很好的示例来展示如何在页面上(例如在网
这样写对吗?有没有更好的写法呢?这与我正在使用的真实数据类似,我想确保将对象或数组正确嵌套在 JSON 文件中。 var data = [ { "department": "I
我有一个HashMap当我调用 .toString() 时,它看起来像这样: {somekey=false, anotherKey=someString, thirdKey={nestedKey=he
是否有更 pythonic 的方式来执行以下操作: import numpy as np def diagonal(A): (x,y,y) = A.shape diags = []
我有以下结构: import java.util.LinkedHashMap; ... LinkedHashMap level0 = new LinkedHashMap(); LinkedHashMa
如何访问 Arraylist 中的整数数组(两者均可调整大小)? 到目前为止我有这个代码: List vertices_passed = new ArrayList(); 我想进入vertices_p
我想知道 MiniZinc 语言中是否可以有(多维)数组的数组。 确实,我想解决 worker 的时间表问题。我的目标是检查它们是否每周至少有 1 天可用。每个 worker 都由一个整数索引,我每周
这个问题已经有答案了: how is axis indexed in numpy's array? (5 个回答) 已关闭 3 年前。 我还没有理解 NumPy 中多维数组中的轴之间的区别。你能给我解
我试图 $.post 包含一些表单数据以及数组中的一些其他数据。我可以将数组插入表单数据的其余部分,但我丢失了数组中的键,并且数据仅表示为字符串,我想我要求的是多维数组? 这是当前的响应字符串: ar
我是 numpy 新手,试图理解 here 中的以下示例。我无法理解的输出 >>> palette[image] 当索引数组 a 是多维时,单个索引数组引用 a 的第一个维度。以下示例通过使用调色板将
这个问题已经有答案了: JavaScript associative array to JSON (5 个回答) JSON.stringify doesn't work with normal Jav
我是一名优秀的程序员,十分优秀!