我发现很多东西在删除重复重命名重复行,但我无法找到任何地方以下问题的任何指导......如何计算和数据表中的
我正在寻找一种方式来重命名我从CSV导入到的C#DataTable中的任何重复行。我的数据看起来类似:
**Name** **Item** **Quantity**
ABC Item_Name 6
ABC Item_Name_2 1
DEF Item_Name 3
GHI Item_Name_2 7
ABC Item_Name 6
ABC Item_Name 1
JKL Item_Name_3 4
ABC Item_Name 6
ABC Item_Name 1
JKL Item_Name_3 4
我想什么数据的样子,如果一整行(包括数量)出现不止一次,是这样的:
**Name** **Item** **Quantity**
ABC Item_Name 6
ABC Item_Name_2 1
DEF Item_Name 3
GHI Item_Name_2 7
ABC (2) Item_Name 6
ABC (2) Item_Name_2 1
JKL Item_Name_3 4
ABC (3) Item_Name 6
ABC (3) Item_Name_2 1
JKL (2) Item_Name_3 4
目前,我'm使用双循环“for循环”来确定表下的哪些行与当前行具有相同的数据并相应地重命名它们。显然,这样做有两个问题:
这是与大量行的表很慢,很明显
今后所有行的name列是“ABC”现在有一个名称列“ABC( 2)“,不管这是他们的第一次还是第98次(因为坦率地说,我的代码很糟糕)。
任何帮助人都可以提供极大的赞赏:)
除了将更改提交给DataTable外,它正在做正确的事情。我无法将行导入或加载到表中,因为它与“foreach”中的“in”枚举冲突。有小费吗? – LeeCambl
嗯。尝试matchingRows [i] [“Name”] + =“(”+ i +“)”or matchingRows [i] .SetField(“Name”,matchingRows [i] [“Name”] +“(”+ i + )“)。如果这不起作用,请尝试设置thisTable.Columns.readOnly = false。 –
是...使用matchingRows [i] [“Name”]整理出来。有没有一个合理的解释,为什么要改变命名列的作品,并使更改ItemArray不? 这是我在这里问的第一个问题,我应该编辑您的答案以包含该更改,然后将其标记为解决方案?这通常是如何工作的? – LeeCambl