【发布时间】:2015-09-10 05:56:09
【问题描述】:
在将其输出回客户端之前,我想更改的列表有问题。
为了这个问题,我将发布一个列表示例以及我需要如何查看结果,因为我已经查看了 Intersect,Except 以及我能想到的所有其他内容,但没有得到我的结果正在寻找。
示例列表:
1、4、6、8
1、2、6、8
2、4、6、8
3、4、5、7
所需结果:
1, 4, 6, 8 //初始行
-, 2, -, - //未更改的项目将显示为 -
2, 4, -, -
3、-、5、7
我真的希望我解释得很好。
如果需要,我很乐意进一步解释。
提前感谢您的建议,到目前为止,我已经为此绞尽脑汁。 ;)
我尝试的内容太多,无法在这里输入,所以这是我目前所拥有的。除了根本不会对数据做任何事情,因为它认为行不同,所以它们保持不变。
private List<List<string>> FilterData(List<string[]> datatable)
{
List<string> previousRow = new List<string>();
List<string> currentRow = new List<string>();
List<string> rowDifferences = new List<string>();
List<List<string>> resultingDataset = new List<List<string>>();
foreach (var item in datatable)
{
if (previousRow == null)
{
previousRow = item.ToList();
continue;
}
currentRow = item.ToList();
rowDifferences = currentRow.Except(previousRow).ToList();
resultingDataset.Add(rowDifferences);
}
return resultingDataset;
}
【问题讨论】:
-
你尝试过什么吗?你写了一些代码吗?
-
StackOverflow 是一个您可以就自己编写的代码获得帮助的地方,因此您需要先尝试一下并发布您想出的内容以获得积极的响应。跨度>
-
它们是 4 个不同的列表吗?
-
这是一个字符串列表。
-
嗯,这是我要解决的第一件事。每个条目都有多个项目,因此值得在您的数据结构中反映这一点。您不想将每个元素解析为列表,然后多次重新格式化。看来您可能想要一个
List<int?[]>或List<List<int?>>,使用null值int?表示“未更改”。
标签: c# list list-manipulation