gpt4 book ai didi

c# - 是否可以删除数据表单元格的第一个元素,即字符串值?

转载 作者:太空宇宙 更新时间:2023-11-03 13:09:20 26 4
gpt4 key购买 nike

我有一个充满字符串的数据表

在其中一列中,我想删除前 2 个元素。

""编辑:我所说的元素是指数据单元格字符串的前 2 个字符。编辑结束""

这样的事情在字符串中很容易,使用remove命令。但是在数据单元中是否也可能发生同样的情况?

PS:有些人可能会回答“为什么不先定义字符串,然后将其放在单元格上”,但我宁愿避免它,因为我的单元格是由一系列串联定义的。这就是我的做法。

//create a list of the columns name
List<string> listadecolunas = new List<string>();
foreach (DataColumn coluna in DataAccess.Instance.tabelafinal5.Columns)
{
listadecolunas.Add(coluna.ColumnName);

}

//create a concatenated string that encolsures all the following columns

for (int i = 0; i < DataAccess.Instance.tabelafinal5.Rows.Count; i++)
{
for (int y = 2; y < listadecolunas.Count; y++)
{
string elemento0 = DataAccess.Instance.tabelafinal5.Rows[i][y].ToString();

if (elemento0 != "")
{

DataAccess.Instance.tabelafinal5.Rows[i]["Expressão"] = DataAccess.Instance.tabelafinal5.Rows[i]["Expressão"] + " + " + elemento0;
}
}

}

我不想用细节来填充它,但由于我已经发布了代码,最后我会得到一个以 + 开头的数据单元,我想删除它,它是就是这样。

编辑2:我的手机看起来像这样 enter image description here

我想删除第一个 + :)

最佳答案

你可以用这样的小 helper 来做到这一点:

for (int i = 0; i < DataAccess.Instance.tabelafinal5.Rows.Count; i++)
{
bool isFirst = true;
for (int y = 2; y < listadecolunas.Count; y++)
{
string elemento0 = DataAccess.Instance.tabelafinal5.Rows[i][y].ToString();

if (elemento0 != "")
{
if(isFirst)
{
isFirst = false;
DataAccess.Instance.tabelafinal5.Rows[i]["Expressão"] = DataAccess.Instance.tabelafinal5.Rows[i]["Expressão"] + elemento0;
}
else
{
DataAccess.Instance.tabelafinal5.Rows[i]["Expressão"] = DataAccess.Instance.tabelafinal5.Rows[i]["Expressão"] + " + " + elemento0;
}
}
}
}

使用 StringBuilder 效率更高一点,但概念相同:

StringBuilder sb = new StringBuilder();
for (int i = 0; i < DataAccess.Instance.tabelafinal5.Rows.Count; i++)
{
bool isFirst = true;
sb.Clear();
for (int y = 2; y < listadecolunas.Count; y++)
{
string elemento0 = DataAccess.Instance.tabelafinal5.Rows[i][y].ToString();

if (elemento0 != "")
{
if(isFirst)
{
isFirst = false;
}
else
{
sb.Append(" + ")
}
sb.Append(elemento0);
}
}
if(sb.Length > 0)
{
DataAccess.Instance.tabelafinal5.Rows[i]["Expressão"] = DataAccess.Instance.tabelafinal5.Rows[i]["Expressão"] + sb.ToString();
}
}

现在,如果您甚至跨不同的方法构建 Cell,并且您不知道之前发生了什么,您将根据单元格的当前值是否为空而不是设置 isFirst默认为其分配 true

关于c# - 是否可以删除数据表单元格的第一个元素,即字符串值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29679340/

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