gpt4 book ai didi

c# - 需要时髦的 LINQ(第 2 部分)

转载 作者:太空宇宙 更新时间:2023-11-03 16:39:44 25 4
gpt4 key购买 nike

我有一个 CSV 字符串:

string data = "G9999999990001800002777107050,G9999999990002777107HMNLAQKPRLLHRAQRWJ010,1,3,29,P,6.74,11.23,07,P,5.25,14.29,08,P,6.89,16.92,2,5,052,U,4.78,31.04,095,O,9.59,27.63,076,P,3.85,16.50,094,P,4.84,18.30,093,O,8.28,26.90,062,P,4.64,16.00,061,P,2.84,12.87,090,O,7.90,20.83,050,P,3.36,16.59,057,B,12.05,34.46,1,1,111,P,7.26,13.79";

前两个元素是 ID。

第二个 2 表示一行和一列,例如 1 行 3 列。每个数据 block 中有 4 个元素,因此我需要过滤掉 12 个元素,它们是:29,P,6.74,11.23,07,P,5.25,14.29,08,P,6.89,16.92

接下来的元素是 2 和 5,例如 2 行 5 列。同样,每个数据 block 都有 4 个元素,所以我需要 40 个元素,这将导致 052,U,4.78,31.04,095,O,9.59,27.63,076,P,3.85,16.50,094,P, 4.84,18.30,093,O,8.28,26.90,062,P,4.64,16.00,061,P,2.84,12.87,090,O,7.90,20.83,050,P,3.36,16.59,057,B,12.05, 34.46

接下来的元素是 1,1 例如 1 行 1 列所以取 4 个元素即 111,P,7.26,13.79

指标(例如 1,3 & 2,5 & 1,1)可能不同,因此 CSV 长度显然会不同。在这个例子中可能还有很多组这些指标,而不仅仅是 3 组。

我已经开始使用 Aggregate((x, y) => x * y) 方法来计算我们需要多少,但我的代码不够动态,无法解释超过 3 个指标集

有没有办法找到这些指标,然后从 CSV 字符串中的正确位置返回正确数量的元素?

请注意:我并没有将自己局限于仅使用 LINQ 的解决方案。我只是认为可能有内置的方法来处理这个问题。

最佳答案

嗯,伪代码:

read first two IDs
int c = position of second comma
while c <= length of string
int x = parse number after c
int y = parse number after x
set c = position of y + 1
int[][] m = new int[x][y]
for (i=0; i<x; i++)
for (j=0; j<y; j++)
m[i][j] = parse 4 elements after c
move c to end of m[i][j]
add m to list of results

我猜你想要将元素存储在矩阵中,并且你想要一个矩阵列表作为你的结果,但这涵盖了任意数量的 x,y 对,因此涵盖了任何长度输入。

关于c# - 需要时髦的 LINQ(第 2 部分),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8053099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com